Wie führe ich nach einem Hard-Reboot (Ubuntu-Server) immer einen bestimmten Befehl aus?

Wie führe ich nach einem Hard-Reboot (Ubuntu-Server) immer einen bestimmten Befehl aus?

Ich habe das Problem, dass der Supervisor jedes Mal nicht mehr ausgeführt wird, wenn ich meinen Server neu starte (vielleicht ist er durchgedreht, weil nicht genügend Arbeitsspeicher vorhanden war, DDoS-Angriffe usw.). Der Grund dafür wurde identifiziert und das Verzeichnis /var/run/supervisor wird einfach gelöscht.

Ich habe erfahren, dass /var/run-Ordner bei einem Hard-Reboot gelöscht werden (über das EC2-Panel, z. B. „Force Stop“ und dann „Start“). Meine bescheidene Frage lautet daher:

Wie kann ich dies nach jedem Hard-Reboot ausführen mkdir /var/run/supervisor? Wo ist der perfekte Ort, um eine solche Logik hinzuzufügen? Ich denke, es ist definitiv nicht /etc/profile

(der Rest funktioniert einwandfrei, Supervisor ist als Dienst konfiguriert + verwendet Unix-Sock unter var/run/supervisor/supervisor.sock)

Meine Ubuntu-Version:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

Antwort1

In Ubuntu 20 würde ich erwarten, dass Supervisor als systemd-Diensteinheit gestartet wird.

In der Service-Unit für den Supervisor müssen Sie angeben, dass das Verzeichnis erstellt wird: (der Unit-Name kann unterschiedlich sein)

https://serverfault.com/a/779648undhttps://serverfault.com/a/840999

sudo systemctl edit --full supervisor

und fügen Sie eine Anweisung hinzu:

RuntimeDirectory=supervisor 

verwandte Informationen