Альтернатива Chkconfig для Ubuntu Server?
Я привык к запуску сервисов на платформах Redhat/RHEL с помощью chkconfig
хотя это не похоже на способ Debian/Ubuntu - Как мне обновить информацию об уровне выполнения для системных служб в Ubuntu?
В конечном итоге ищет эквиваленты:
chkconfig --add <service>
chkconfig --level 345 <service> on
chkconfig --del <service>
5 ответов
Эквивалентно chkconfig
является update-rc.d
Эквиваленты, которые вы ищете
update-rc.d <service> defaults
update-rc.d <service> start 20 3 4 5
update-rc.d -f <service> remove
Смотрите эту полезную страницу для получения дополнительной информации или посмотрите man update-rc.d
Лучший вариант IMHO - это sysv-rc-conf. Для установки достаточно запустить команду:
sudo apt-get install sysv-rc-conf
После установки запустите команду:
sudo sysv-rc-conf
Вы можете установить или снять флажки для запуска службы на любом уровне выполнения и даже можете остановить или запустить службы из этой консоли. Это незаменимый инструмент для включения или отключения приложений на постоянной основе для загрузки вашей Ubuntu. Если вам нужно быстрое изменение, тогда вы можете использовать интерфейс CLI:
Например, чтобы остановить ssh на уровнях 3 и 5 выполнения:
sysv-rc-conf-off level 35 ssh
Atd для запуска на уровнях запуска 2,3,4 и 5:
sysv-rc-conf on atd
Если вы хотите узнать больше:
man sysv-rc-conf
Попробуй это:
apt-get install chkconfig
Это работает, по крайней мере, как выпуск Ubuntu 12.04.
На данный момент нет стабильного релиза для работы со сценариями Upstart. Джейкоб Педдикорд написал jobservice (backend daemon) и jobs-admin (GTK+ GUI, который говорит с ним) для своего проекта Google Summer of Code. Пакеты Lucid находятся в его PPA. Они также существуют во Вселенной в Maverick. Для jobservice пока нет интерфейса командной строки, только jobs-admin.
Пройдемся от нуля до цели - как сделать это шаг за шагом.
Шаг 1: давайте напишем привет мир
cat >> /var/tmp/python/server.py <<\EOF
#/usr/bin/python
import time
while True:
print "hello> YES Bello"
time.sleep(30)
EOF
Шаг 2: давайте сделаем наше приложение hello world server.py автоматизированным
cat >> /var/tmp/myserver.sh <<\EOF
#!/bin/sh
script='/var/tmp/python/server.py'
export DISPLAY=:0.0 && /usr/bin/python $script &
EOF
chmod +x /var/tmp/myserver.sh
cat >> /etc/init.d/myserver <<\EOF
#! /bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/var/tmp/myserver.sh
PIDFILE=/var/run/myserver.pid
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting feedparser"
start_daemon -p $PIDFILE $DAEMON
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping feedparser"
killproc -p $PIDFILE $DAEMON
PID=`ps x |grep server.py | head -1 | awk '{print $1}'`
kill -9 $PID
log_end_msg $?
;;
force-reload|restart)
$0 stop
$0 start
;;
status)
status_of_proc -p $PIDFILE $DAEMON atd && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
EOF
chmod +x /etc/init.d/myserver
chmod -R 777 /etc/init.d/myserver
Шаг 3:
$ update-rc.d myserver defaults
update-rc.d: warning: /etc/init.d/myserver missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Adding system startup for /etc/init.d/myserver ...
/etc/rc0.d/K20myserver -> ../init.d/myserver
/etc/rc1.d/K20myserver -> ../init.d/myserver
/etc/rc6.d/K20myserver -> ../init.d/myserver
/etc/rc2.d/S20myserver -> ../init.d/myserver
/etc/rc3.d/S20myserver -> ../init.d/myserver
/etc/rc4.d/S20myserver -> ../init.d/myserver
/etc/rc5.d/S20myserver -> ../init.d/myserver
- Таким образом, на шаге 3 система при загрузке автоматически запустит server.py как демон и упростит автоматизацию.
Надеюсь, это помогло.