Einfache / Brauchbare Dinge zuerst
Wenn Sie ohne großen Aufwand ein Startskript wünschen (d. h. den Prozess bearbeiten, ihn nur vom System verwalten lassen), können Sie einen systemd
erstellen Service. Siehe Gregs Antwort für eine detaillierte Beschreibung, wie das geht. Danach können Sie den Dienst mit
systemctl start myserver
Früher hätte ich empfohlen, xinetd
auszuprobieren oder etwas Ähnliches für eine feinere Granuarität in Bezug auf Ressourcen- und Berechtigungsverwaltung, aber systemd deckt das bereits ab.
Die Shell verwenden
Sie könnten Ihren Prozess wie folgt starten:
nohup ./myexecutable &
Die &
weist die Shell an, den Befehl im Hintergrund zu starten und ihn in der Jobliste zu behalten. Bei einigen Shells wird der Job beendet, wenn die übergeordnete Shell mit dem HANGUP-Signal beendet wird. Um dies zu verhindern, können Sie Ihren Befehl mit nohup
Befehl, der das HANGUP-Signal verwirft.
Dies funktioniert jedoch nicht, wenn der aufgerufene Prozess das HANGUP-Signal wieder einschaltet.
Um wirklich sicherzugehen, müssen Sie den Prozess aus der Jobliste der Shell entfernen. Für zwei bekannte Shells kann dies wie folgt erreicht werden:
bash:
./myexecutable &
disown <pid>
zsh:
./myexecutable &!
Töten Sie Ihren Hintergrundjob
Normalerweise gibt die Shell die PID des Prozesses aus, der dann mit kill
beendet werden kann Befehl, um den Server zu stoppen. Wenn Ihre Shell die PID nicht druckt, können Sie sie mit
echo $!
direkt nach der Ausführung. Dies gibt die PID des gegabelten Prozesses aus.
Sie könnten Supervisord verwenden, um Ihren Prozess zu verwalten.