>как сделать, чтобы добавить демон в автостарт? например хочу чтобы rexec запускался,
>что мне делать и что делает inetd ? подскажите...
- для запуска standalone daemons в xBSD используется /etc/rc.local
и /usr/local/etc/rc.d/ в которой лежат стартуемые скрипты
в SYSV обычно /etc/init.d - здесь лежат все скрипты на которые
делают линки в уровнях загрузки:
- /etc/rc1[2,3,...].d:
- SzxName - где S - означает стартовый скрипт при загрузке или повышении
уровня через `init N(номер уровня загрузки), Name - имя процедуры
старта, например S80sshd
- KnmName - где K - означает что скрипт убивает данный сервис при
понижении уровня загрузки или reboot/shutdown
Общий пример (Solaris):
ultra:/home/lavr> ls -la /etc/init.d/sshd
-rwxr--r-- 1 root other 933 Nov 22 2001 /etc/init.d/sshd
ultra:/home/lavr>
скрипт для up/down SSHD:
#!/sbin/sh
#
# /etc/init.d/sshd - Start/Stop the ssh daemon
#
#
# The network and streams should already be built by the time
# this script runs. /usr/local should be mounted.
#
# If sshd is already executing, don't re-execute it.
#
#-set -x
PATH=/usr/bin:/bin
case $1 in
'start')
if [ -f /usr/local/sbin/sshd -a -f /usr/local/etc/ssh/sshd_config ]; the
n
/usr/local/sbin/sshd;
fi
;;
'stop')
if [ -f /var/log/sshd.pid ]; then
/usr/bin/kill -TERM `cat /var/log/sshd.pid`
else
pid=`/usr/bin/ps -e -o pid,comm | /usr/bin/grep sshd | /usr/bin/
grep -v grep | grep -v /sbin/sh | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
if test "$pid"
then
/usr/bin/kill -TERM $pid
fi
fi
/bin/rm -f /var/log/sshd.pid
;;
'restart')
if [ -f /var/log/sshd.pid ]; then
/usr/bin/kill -HUP `cat /var/log/sshd.pid`
else
echo "No pid file /var/log/sshd.pid"
fi
;;
*)
echo "usage: /etc/init.d/sshd {start|stop|restart}"
;;
esac
Теперь создаем линки для старта-стопа SSHD на разных уровнях: 2,3
ultra:/home/lavr> ls -la /etc/rc2.d/*ssh*
lrwxrwxrwx 1 root other 14 Aug 28 1997 /etc/rc2.d/S94sshd -> ../init.d/sshd
ultra:/home/lavr> ls -la /etc/rc1.d/*ssh*
lrwxrwxrwx 1 root other 14 Aug 28 1997 /etc/rc1.d/K30sshd -> ../init.d/sshd
ultra:/home/lavr>
inetd - демон который открывает сокеты на определенных портах и если
есть соединение, запускает определенный демон для этого сервиса указанный
в /etc/inetd.conf
например:
[alone]~ > grep rshd /etc/inetd.conf
#shell stream tcp nowait root /usr/libexec/rshd rshd
#kshell stream tcp nowait root /usr/libexec/rshd rshd -k
#shell stream tcp6 nowait root /usr/libexec/rshd rshd
[alone]~ >
редактируем /etc/inetd.conf:
[alone]~ > grep rshd /etc/inetd.conf
#
shell stream tcp nowait root /usr/libexec/rshd rshd
#kshell stream tcp nowait root /usr/libexec/rshd rshd -k
#shell stream tcp6 nowait root /usr/libexec/rshd rshd
[alone]~ >
выдаем сигнал SIGHUP демону inetd чтобы он перечитал конфигурацию и
активизировал нужный сервис
В кратце где-то так, но для каждой OS свои особенности местоположения
rc.local (BSD) и init.d и директорий rc0[1...6].d (SYSV)