So geben Sie einen Befehl ein, der den Daemon vor der Anmeldung im Ubuntu-Server 20.04 automatisch startet

So geben Sie einen Befehl ein, der den Daemon vor der Anmeldung im Ubuntu-Server 20.04 automatisch startet

Ich habe zwei Programme im Ubuntu-Server 20.04, die sich hier befinden:

 /home/kiko/go-btfs/cmd/btfs
 /home/kiko/node5007/cmd/btfs

Sie werden beide mit dem Befehl ausgeführt: ./btfs daemonWie kann dieser Befehl für beide Verzeichnisse so eingerichtet werden, dass sie vor der Anmeldung beim Server automatisch gestartet werden? Ich habe versucht, einen Autostart-Dienst mit zu erstellen sudo nano /etc/systemd/system/btfs_main.serviceund dann die folgenden Einstellungen in die Einheit einzugeben btfs_main.service:

[Unit]
Description=Starting_btfs_daemon

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=/home/kiko/go-btfs/cmd/btfs/./btfs daemon
ExecStart=/home/kiko/node5007/cmd/btfs/./btfs daemon
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

und dann: sudo systemctl daemon-reload, sudo systemctl enable btfs_main.service, sudo systemctl start btfs_main.service, systemctl status btfs_main.service. Beim letzten Befehl tritt ein Fehler auf: Unit btfs_main.service has a bad unit file setting. Wie konfiguriere ich die Einheiteneinstellungen, damit beide Befehle automatisch ausgeführt werden?

Antwort1

Sie können die Datei /etc/rc.local verwenden, um Ihr Skript nach dem Neustart des Servers zu starten.

Sie müssen die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst /etc/rc.localdie Datei und machen Sie sie ausführbar. Dies kann per Befehl erfolgen chmod a+x /etc/rc.local.
  2. Erstellen Sie nun /etc/systemd/system/rc-local.servicedie Datei. Fügen Sie nach dem Erstellen der Systemd-Dienstdatei den folgenden Inhalt hinzu.
[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target
  1. Aktivieren Sie anschließend den Dienst beim Systemstart:

systemctl aktivieren rc-local

  1. Starten Sie nun den Dienst und überprüfen Sie seinen Status:

systemctl start rc-local.service

systemctl status rc-local.service

Sie sollten eine Ausgabe wie im folgenden Bild erhalten. Bildbeschreibung hier eingeben

  1. Fügen Sie nun Ihre Skripte in die /etc/rc.localDatei ein und machen Sie sie ausführbar.
  2. Starten Sie den Server neu und überprüfen Sie die Ergebnisse.

verwandte Informationen