On 13/04/10 20:50, Linas wrote:
David C. Rankin wrote:
Guys,
One thing I miss with Arch are init-script shortcuts for starting and stopping processes. rc-commands really help cut down on typing. For example, all suse did was to create links to the files in /etc/rc.d/... with a naming convention of rc<init script name>. So, for example, instead of having to type:
/etc/rc.d/postfix
the shortcut was simply
rcpostfix
I have normally seen the sym-link shortcuts placed in /usr/sbin, but /usr/local/sbin works fine as well. The convenience is addictive. If you manage your box from the command line or want to, then you can give this setup a testdrive. You can create the sym-links very easily with the following cut and pasted to the command line (as root - all on one line):
for i in $(ls /etc/rc.d); do [[ -e /etc/rc.d/$i ]]&& [[ ! -h /usr/local/sbin/$i ]]&& ln -sv /etc/rc.d/$i /usr/local/sbin/rc${i}; done
No need to create one symlink per file. You can just add rc() { /etc/rc.d/$*; } to the user profile to automatically be able to do:
rc postfix start for any script you have or ever add.
To have autocompletion with your new command, also add: complete -o filenames -W "$(cd /etc/rc.d/&& echo *)" rc
here's my rc script, no need for completion IMO when you can just type: `rc r l~pd` to restart lighttpd #!/bin/sh WC='~' if [ $# -ne 2 ]; then echo "usage: <OPERATION> <PATTERN>" echo " OPERATION can also be one of: k(stop), r(restart), s(start)" echo " PATTERN(grep -E ^PATTERN$) where $WC is replaced with .*" exit 1 fi case $1 in k) opr="stop" ;; r) opr="restart" ;; s) opr="start" ;; *) opr=$1 esac if [ "$opr" = "" ]; then echo "error: no operation specified." exit 1 fi pat=$(echo $2 | sed "s/$WC/.*/g") rc=$(ls /etc/rc.d/ | grep -E "^$pat$") mat=$(echo $rc | wc -w) if [ "$mat" = "1" ]; then sudo /etc/rc.d/$rc $opr elif [ "$mat" = "0" ]; then echo "error: no targets found." else echo "error: multiple targets found:" for t in $(echo $rc); do echo " $t" done fi