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

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

Wenn ich meine CentOS-Box boote, wird der httpdDienst automatisch gestartet. Wie erstelle ich einen benutzerdefinierten Dienst, der dasselbe tut? Ich habe ein Programm, das ich zum Mining verwende, und ich möchte es nicht bei ./minerjedem Booten der Maschine ausführen müssen.

Antwort1

Da Sie CentOS 7.x verwenden, erstellen Sie eine Unit.as vim /usr/lib/systemd/system/miner.serviceund rootfügen Sie den folgenden Inhalt ein:

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

Sie können Optionen hinzufügen ExecStop=, ExecReload=wenn bestimmte Argumente zum Schließen oder Neuladen von Diensten verwendet werden.

Danach müssen Sie systemctl enable miner.servicees nur noch bei jedem Start starten.

Ähnliche Artikel:

Antwort2

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

Unter CentOS können Sie Folgendes überprüfen:

# chkconfig --list 

und wenn Sie Ihr Programm sehen, können Sie dem System sagen, es beim Booten automatisch auszuführen

# chkconfig postgresql on

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

Wie erstelle ich einen Dienst für ein Shell-Skript, sodass ich es wie einen Daemon starten und stoppen kann?

dann füge es in /etc/init.d/ ein und verwende chmod +x

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

Antwort3

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

Wenn es jedoch tatsächlich als Dienst behandelt werden muss, hängt die beste Vorgehensweise davon ab, ob Sie CentOS 7 oder 5/6 verwenden.

edit: vergessen zu erwähnen, dass dies als Root ausgeführt wird, wenn Sie es also als Nicht-Root-Benutzer ausführen müssen, verwenden Sie stattdessensu - username -c /path/to/miner

verwandte Informationen