Ich hatte ein Problem, bei dem das Erstellen eines Upstart-Skripts das Skript mehrmals aufrief und dazu führte, dass meine IRCd ungefähr acht Mal erzeugt wurde. Um dies zu korrigieren, habe ich start-stop-daemon verwendet:
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
Dies funktioniert genau so, wie ich es möchte, AUSSER:
stop ircd
sagt, dass es es stoppt, aber inspircd läuft danach noch.
Gibt es einen besseren Weg als den Start-Stop-Daemon, der verhindert, dass das Skript 8 Instanzen öffnet, oder gibt es eine Möglichkeit, es mit dem Start-Stop-Daemon kompatibel zu machen?
expect fork
das Problem wurde behoben. Ich kann jedoch immer noch nicht 'stop ircd' aufrufen und das Skript stoppen lassen. Ich werde es jedoch ohne schaffen (ps aux, kill), aber wenn Sie Ihre Antwort dahingehend ändern können, dass dies möglich ist, werde ich ein sehr glücklicher Ubuntu-Benutzer sein;)sudo start ircd
, sollte es eine PID ausgeben. Wenn Sie das am Ende vonps
(zB :)ps u -p <PID>
festhalten, zeigt das einen Prozess, der Sinn macht? Wenn dies nicht der Fall ist, verliert es immer noch den Überblick über die PID. Vielleicht möchten Sie es versuchenexpect daemon
ps aux
,kill <pid>
funktioniert gut, ich war mehr besorgt über das Skript beginnen, beim Booten, was es tut. Vielen Dank!