it-swarm.it

Scrittura di file di servizio di base per systemd

Sto sviluppando un'applicazione Nodejs con cui l'utente interagisce tramite HTTP su localhost. Non ci sono praticamente parametri e il demone non ha praticamente dipendenze e deve essere attivo al momento del login.

Vorrei seguire gli idiomi su ciascuna piattaforma per gli script di avvio, e questo significa Upstart su Ubuntu e systemd su Fedora.

  • Esistono buoni tutorial per scrivere file di sistema?
  • Esistono "buone pratiche" di cui essere a conoscenza?

Ho trovato queste risorse:

Sto principalmente cercando una sorta di API come riferimento, nonché un formato di base da seguire.

106
beatgammit

Vorrei iniziare con pagine del manuale di Systemd . Rappresentano una risorsa completa del sistema e dei servizi.

C'è anche freedesktop Systemd FAQs .

26
jasonwryan

Il seguente esempio è ispirato da questo link, che in realtà non menziona tutti i passaggi ed è elencato solo per accreditare la fonte: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files .html

Passaggio 1 : ho creato questo file (posizione della nota) che essenzialmente avvia un processo bash con un argomento esteso. Potresti lanciare il tuo comando che potrebbe essere diverso da bash.

[[email protected] ~]# cat /etc/systemd/system/foo.service 
[Unit]
Description=foo

[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"

[Install]
WantedBy=multi-user.target

Passaggio 2 :

Ricarica systemd:

systemctl daemon-reload

Inizia il nuovo servizio:

systemctl enable foo

(allo stesso modo puoi disable it)

(opzionale) Passaggio 3 : dovrebbe avviarsi automaticamente al riavvio successivo in modalità multiutente (eseguire il livello 3) ma se si desidera avviarlo immediatamente :

systemctl start foo
systemctl status foo # optional, just to verify

Aggiornamento: Per completezza, dovrei aggiungere che Ubuntu Bionic sembra avere una pagina man molto approfondita. RTFM qui

184
necromancer
4
caracal