On Sat, Apr 16, 2011 at 3:41 AM, Tom Gundersen <[email protected]> wrote: > I'm about to push this patch, but there is a bug. "rc list" will not > show "AUTO" on daemons that are started in the background. I fixed it > here: > <https://github.com/teg/initscripts-arch/commit/2800e50847f3217b60eb07138c7f6fda05467616>, > could you check that it is correct? Thanks for the correction. I was not "plugged" last few days. Your patch looks fine but i've not tested it.
> > -t > > On Sat, Apr 2, 2011 at 11:52 PM, Sebastien Luttringer <[email protected]> wrote: >> This is allow a quick calling to /etc/rc.d scripts by calling a shell >> command. >> By example, starting sshd and gpm can be done by typing: rc start sshd gpm >> rc can also list available scripts and show which is started/stopped in >> DAEMONS >> >> Signed-off-by: Sebastien Luttringer <[email protected]> >> --- >> functions | 9 +++++++++ >> install.sh | 2 ++ >> rc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 62 insertions(+), 0 deletions(-) >> create mode 100755 rc >> >> diff --git a/functions b/functions >> index 8a191e6..e0f3bec 100644 >> --- a/functions >> +++ b/functions >> @@ -175,6 +175,15 @@ have_daemon() { >> [[ -f /etc/rc.d/$1 && -x /etc/rc.d/$1 ]] >> } >> >> +# Check if $1 is started at boot >> +ck_autostart() { >> + local d >> + for d in "${DAEMONS[@]}"; do >> + [[ "$1" = $d ]] && return 1 >> + done >> + return 0 >> +} >> + >> start_daemon() { >> have_daemon "$1" && /etc/rc.d/"$1" start >> } >> diff --git a/install.sh b/install.sh >> index 8e6c3d7..c70a10e 100755 >> --- a/install.sh >> +++ b/install.sh >> @@ -21,3 +21,5 @@ done >> >> gcc $CFLAGS -o minilogd minilogd.c || exit 1 >> install -D -m755 minilogd ${DESTDIR}/sbin/minilogd || exit 1 >> + >> +install -D -m755 rc ${DESTDIR}/sbin/rc || exit 1 >> diff --git a/rc b/rc >> new file mode 100755 >> index 0000000..4bb9730 >> --- /dev/null >> +++ b/rc >> @@ -0,0 +1,51 @@ >> +#!/bin/bash >> + >> +. /etc/rc.conf >> +. /etc/rc.d/functions >> + >> +usage() { >> + cat >&2 << EOF >> +usage: rc action daemon ... >> + >> +e.g: rc list >> + rc help >> + rc start sshd gpm >> +EOF >> +} >> + >> +(( $# < 1 )) && usage && exit 1 >> + >> +case $1 in >> + help) >> + usage >> + ;; >> + list) >> + cd /etc/rc.d/ >> + for d in *; do >> + have_daemon "$d" || continue >> + # print running / stopped satus >> + if ! ck_daemon "$d"; then >> + printf "${C_OTHER}[${C_DONE}STARTED${C_OTHER}]" >> + else >> + printf "${C_OTHER}[${C_FAIL}STOPPED${C_OTHER}]" >> + fi >> + # print auto / manual status >> + if ! ck_autostart "$d"; then >> + printf "${C_OTHER}[${C_DONE}AUTO${C_OTHER}]" >> + else >> + printf "${C_OTHER}[${C_FAIL} ${C_OTHER}]" >> + fi >> + printf " ${C_MAIN}$d${C_CLEAR}\n" >> + done >> + ;; >> + *) >> + action=$1 >> + shift >> + for i; do >> + [[ -x "/etc/rc.d/$i" ]] && "/etc/rc.d/$i" $action >> + done >> +esac >> + >> +true >> + >> +# vim: set ts=2 sw=2 noet: >> -- >> Sebastien Seblu Luttringer >> >> > -- Sébastien Luttringer www.seblu.net
