runit - Supervise / OK kann nicht geöffnet werden: Datei existiert nicht

8

Ich versuche herauszufinden, warum runit nicht startet oder mir den Status für die verwalteten Anwendungen gibt. Läuft unter Ubuntu 12.04.

Ich habe / service, / etc / sv / myapp erstellt (mit einem Ausführungsskript, einer Konfigurationsdatei, einem Protokollordner und einem darin enthaltenen Ausführungsskript). Ich erstelle einen Symlink von / service / zu / etc / sv / myapp

Wenn ich renne

sudo sv s /service/*

Ich erhalte die folgende Fehlermeldung:

warning: /service/myapp: unable to open supervice/ok: file does not exist

Einige meiner Googler haben herausgefunden, dass ein angeblicher Neustart des svscan-Dienstes dies beheben könnte, aber das Beenden und Ausführen von svscanboot machte keinen Unterschied.

Irgendwelche Vorschläge? Vermisse ich hier irgendwo einen Schritt?

Alexandr Kurilin
quelle

Antworten:

4

In meinem Fall habe ich die Sperre und PID aus der Dienstkonfiguration gelöscht, nachdem ich den Dienst beendet habe:

# stops the service 
sv down serviceName

# deletes the 'pid' and 'lock' files
find -L /etc/service/serviceName -type f \( -name "pid" -o -name "lock" \) -delete

# starts the service
sv up serviceName

# verify service status
sv s serviceName

Ich habe eine Weile gebraucht, um die Lösung zu finden, also hoffe ich, dass sie jemand anderem hilft.

Alfredocambera
quelle
2
Danke für die Antwort. Ich habe auch erfahren, dass wir den Protokolldienst nicht hinzufügen können, nachdem der Dienst in / etc / service installiert wurde. Kein Neustart funktioniert. Daher können wir den Dienst auch beenden, den Symlink aus / etc / service entfernen und ihn erneut mit einem Symlink versehen.
Tanin
Wusste das
2

Wenn Sie Ubuntu 18.04 oder höher ausführen und den folgenden Fehler erhalten

Supervise / OK kann nicht geöffnet werden: Datei existiert nicht

oder wenn das runningvdir nicht in der "grep" -Ausgabe angezeigt wird, führen Sie bitte das Paket runit-systemd aus , indem Sie den folgenden Befehl ausführen

sudo apt install runit-systemd

Für Ubuntu 18.04 haben alle oben angegebenen Antworten bei mir nicht funktioniert. Ich habe diese Lösung dann aus einer anderen Askubuntu- Frage gefunden

ich hoffe das hilft

Kumaran
quelle
1
sudo runsv /service/run/ &

Dann

sudo sv  start /service/run/

oder

sudo sv  up /service/run/
ibroheem
quelle
0

Runit hat auch Probleme beim Starten, wenn ein Dienst mit einem Verzeichnis verknüpft ist, das über LVM auf einem anderen Dateisystem bereitgestellt wird. Zum Beispiel,

$ readlink -f /etc/service/my-service
/opt/my-service

$ mount
...
/dev/mapper/lvm--local-opt on /opt type ext4 (...)

$ sv once my-service
warning: my-service: unable to open supervise/ok: file does not exist

Mögliche Lösungen:

  • Hängen Sie das Dateisystem von LVM aus
    umount /opt; lvremove /dev/mapper/lvm--local-opt
  • Verschieben Sie den Runit-Service an einen besseren Ort
    update-service --remove /opt/my-service; mv /opt/my-service /etc/sv; update-service --add /etc/sv/my-service
Robert Steward
quelle