it-swarm.com.de

Wie erstelle ich einen Dienst, der beim Booten in CentOS gestartet wird?

Wenn ich meine CentOS-Box starte, wird der Dienst httpd automatisch gestartet. Wie erstelle ich einen benutzerdefinierten Service, der dasselbe tut? Ich habe ein Programm, das ich für das Mining verwende, und ich möchte nicht jedes Mal, wenn ich den Computer starte, ./miner Ausführen müssen.

7
Rei

Da Sie CentOS 7.x verwenden, erstellen Sie eine Einheit. vim /usr/lib/systemd/system/miner.service als root und füge den folgenden Inhalt ein:

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

Sie könnten ExecStop= und ExecReload= Optionen, wenn bestimmte Argumente zum Schließen oder Neuladen von Diensten verwendet werden.

Danach müssen Sie nur noch systemctl enable miner.service, damit es bei jedem Start startet.

Verwandte Dinge:

12
user34720

Abhängig vom Miner-Programmanbieter ist der zugehörige Dienst möglicherweise bereits deklariert.

Auf centOS können Sie überprüfen:

# chkconfig --list 

wenn Sie Ihr Programm sehen, können Sie das System anweisen, es beim Booten automatisch auszuführen

# chkconfig postgresql on

Wenn Sie kein Ergebnis finden, können Sie Ihr eigenes Dummy-Skript mithilfe einer Vorlage erstellen, zum Beispiel:

Wie erstelle ich einen Dienst für ein Shell-Skript, damit ich ihn wie einen Dämon starten und stoppen kann?

dann lege es in /etc/init.d/ und chmod + x es

Sie sollten in der Lage sein, Ihre Miner-Anwendung als Service mit allen damit verbundenen Vorteilen zu verwalten

1
M4rty

Wenn Sie den Befehl nur beim Booten ausführen müssen, ist der Versuch, einen tatsächlichen Dienst zu erstellen, nicht wirklich erforderlich. Am einfachsten ist es, . /path/to/miner in /etc/rc.d/rc.local. Diese Datei ist ein Skript, das bei jedem Start ausgeführt wird (und sicherstellt, dass rc.local ausführbar ist), sodass Ihr Befehl beim Start des Servers ausgeführt wird.

Wenn Sie es jedoch benötigen, um tatsächlich als Service behandelt zu werden, hängt der beste Weg davon ab, ob Sie CentOS 7 oder 5/6 verwenden.

edit: vergessen zu erwähnen, dies wird als root ausgeführt. Wenn Sie es also als Nicht-root-Benutzer ausführen müssen, verwenden Sie stattdessen su - username -c /path/to/miner

1
Kefka