У меня была проблема, когда создание сценария с выскочкой запускало бы сценарий несколько раз, в результате чего мой IRCd появлялся примерно 8 раз или около того. Чтобы исправить это, я использовал start-stop-daemon:
description "IRC Daemon Upstart Script"
start on startup
start on runlevel [2345]
stop on runlevel [016]
respawn
nice -5
exec start-stop-daemon --start --chuid ircuser --chdir /home/ircuser/inspircd/run --exec /home/ircuser/inspircd/run/bin/inspircd -- --config=/home/ircuser/inspircd/run/conf/inspircd.conf
Это работает именно так, как я хочу, за исключением того, что:
stop ircd
говорит, что это останавливает это, но inspircd все еще работает после этого.
Есть ли лучший способ, чем использовать start-stop-daemon, который не позволит сценарию открывать 8 экземпляров, или есть какой-то способ сделать его совместимым с start-stop-daemon?
expect fork
исправил проблему. Тем не менее, я все еще не могу вызвать 'stop ircd' и остановить скрипт. Тем не менее, я справлюсь без этого (ps aux, kill), но если вы сможете изменить свой ответ, включив способ сделать это, я буду очень счастливым пользователем Ubuntu;)sudo start ircd
он должен выводить PID. Если вы добавите это в конецps
(напримерps u -p <PID>
:), это показывает процесс, который имеет смысл? Если это не так, он все еще теряет PID, так что вы можете попробоватьexpect daemon
ps aux
,kill <pid>
работает отлично, я был более обеспокоен о том , чтобы скрипт START при загрузке, что она делает. Спасибо!