Ich habe ein einfaches Skript in Ruby geschrieben.
- Ich möchte es als Hintergrundaufgabe (Daemonprozess oder Dienst) ausführen.
- Darüber hinaus möchte ich die Kontrolle darüber haben, sodass ich es starten und stoppen kann.
- Es wäre perfekt, wenn der Vorgang automatisch gestartet werden könnte, wenn mein VPS neu gestartet wird.
Gibt es eine Möglichkeit, das zu tun?
Antwort1
Eigentlich habe ich dafür die perfekte Lösung gefunden. Es erfordert upstart
also viel einfacher als Standarddienste runit
und systemd
.
Hier ist eine ausführlichere Anleitung: http://blog.arkency.com/2014/06/create-run-and-manage-your-background-processes-with-upstart/
Und es ist ungefähr so:
In /etc/init/my_program_upstart_script.conf
:
start on my_event
respawn
exec /home/my_user/my_program/my_program_executable
Ja, so einfach!
Führen Sie das Programm einfach mit aus sudo initctl emit my_event
.
Antwort2
Eine einfache Möglichkeit besteht darin, ein Bash-Skript zu erstellen, das Ihre Anwendung startet/stoppt. Folgen Sie /etc/init.d/skeleton
diesem Beispiel.
Installieren Sie Ihr Skript:
sudo copy yourApplicationCtl /etc/init.d
sudo chmod +x /etc/init.d/yourApplicationCtl
So starten Sie Ihre Anwendung beim Booten des Servers und stoppen sie beim Herunterfahren:
sudo update-rc.d yourApplicationCtl defaults
Wenn Sie Ihre Anwendung manuell starten/stoppen möchten:
sudo service yourApplicationCtl start/stop
Nützliche Links sind:UbuntuBootenAnleitung, Manpage vonupgrade-rc.dUndService