Есть небольшой самопальный демон (на питоне, работает с мускулем). Нужно добавить его в автозагрузку от непривелегированного пользователя и респаунить в случае падения... ещё желательно аккуратно его завершать при останонове системы и перезапускать по команде пользователя... как это православно сделать в шляпе (CentOS 6)?
писать отдельный скрипт в /etc/init.d больно жирно... в inittab — слишком близко к системе ...
пожалуй лучшим вариантом был бы аналог гетушного /etc/local.d/foo.{start,stop} и совет по респауну и зупаску от другого пользователя...
да, со шляповскими заморочками я слабо знаком, поэтому буду рад ссылкам на доки...
Самопальный сервис
Делал такое с помощью insserv помнится.. вполне годный вариант [был].
почему бы и не написать upstart-скрипт? на мой взгляд, управление сервисом будет гораздо гибче и удобней, чем просто скриптом из rc.local. Кстати, респаун апстарт тоже умеет.
Делал такое с помощью insserv помнится.. вполне годный вариант [был].
insserv — это же просто дебиановская приблуда управления sysv init'ом... нет? тогда при чём здесь она?
почему бы и не написать upstart-скрипт?
потому что это не бубунта... хотя склоняюсь к тому, что всё же буду sysv'шный скрипт писать...
потому что это не бубунта
и?
в RHEL6 апстарт подефолту... посему "небубунтушность" тут не в тему
само собой, инит-скрипты поддерживаются, но все же
и?
в RHEL6 апстарт подефолту... посему "небубунтушность" тут не в тему
само собой, инит-скрипты поддерживаются, но все же
мда... а слона то я и не приметил... покурю про апстарт... до чтения доков терзает вопрос, умеет ли он запускать после зависимостей из sysvinit'а т.к. всё остальное запускается по-старому...
в скрипте прописывается после чего должен быть старт, но вот по поводу "последним" так сразу не подскажу, как-то никогда необходимости не было
в скрипте прописывается после чего должен быть старт, но вот по поводу "последним" так сразу не подскажу, как-то никогда необходимости не было
мне не обязательно главное, после мускуля, который запускается скриптами sysvinit'а... в принципе если не заработает, то можно после sysvinit'а прописать.... sysv'шные срипты запускаются task'ом после каждого перехода на другой ранлевел... ... если _после_ них ещё как-то и получится прописать запуск, то остановку вряд ли получится с ними связать...
сейчас другая напать... в шляпе апстарт старый и не поддерживает setgid/setuid... что под эти цели приспособить? не su[do] же...
прочитал про runuser
главное, после мускуля
тогда прописать запуск после мускуля
остановку вряд ли получится с ними связать
необходимо стопать после остановки определеных сервисов?
тогда прописать запуск после мускуля
говорю же... мускуль запускается скриптами sysv (/etc/init.d/mysqld), которые запускаются костылём (утрированно)
start on runlevel [0123456]
task
exec /etc/rc.d/rc $RUNLEVELи upstart о мускуле, соответственно, ничего не знает... чувствую, что придётся всё же писать sysv-скрипт...
необходимо стопать после остановки определеных сервисов?
желатльно было бы остановить перед мускулем, но это скорее вопрос красоты, нежели необходимости...
была такая шляпа
#!/bin/sh
#
# Startup script for rtmp lite
#
# chkconfig: 345 20 80
# description: rtmp lite media server
# Settings
RTMPLITE_FLDR=/usr/src/rtmplite-read-only/
# See how we were called.
case "$1" in
start)
echo -n "Starting rtmpd: "
if [ -f /var/lock/subsys/rtmpd ] ; then
echo
exit 1
fi
cd $RTMPLITE_FLDR && PYTHONPATH=../p2p-sip-read-only/src:. && export PYTHONPATH && python ./siprtmp.py -d &
echo
touch /var/lock/subsys/rtmpd
;;
stop)
echo -n "Shutting down rtmpd: "
pkill -9 -f siprtmp.py
echo
rm -f /var/lock/subsys/rtmpd
;;
status)
status rtmpd
;;
condrestart)
if [ -f /var/lock/subsys/rtmpd ]; then
$0 stop
$0 start
fi
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0