Parametri file configurazione systemctl per gestione servizio

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
ducarpit
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 299
Iscrizione: sabato 31 ottobre 2015, 13:10
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04 x64
Sesso: Maschile

Parametri file configurazione systemctl per gestione servizio

Messaggio da ducarpit »

Buonasera a tutti,
spesso mi trovo nella condizione di dover scrivere un file di configurazione per gestire un servizio o software tramite il systemctl del sistema operativo, esempio preso dalla rete:

Codice: Seleziona tutto

[Unit]
Description=SvxLink remote transceiver repeater control software
Documentation=man:remotetrx(1)
Requires=svxlink_gpio_setup.service
After=network.target remote-fs.target syslog.target time.target
After=svxlink_gpio_setup.service

[Service]
EnvironmentFile=@SYSTEMD_DEFAULTS_FILES_DIR@/remotetrx
PIDFile=${PIDFILE}
ExecStartPre=-/bin/touch ${LOGFILE}
ExecStartPre=-/bin/chown ${RUNASUSER} ${LOGFILE}
ExecStart=@BIN_INSTALL_DIR@/remotetrx --pidfile=${PIDFILE} --logfile=${LOGFILE} --config=${CFGFILE} --runasuser=${RUNASUSER}
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
TimeoutStartSec=60
TimeoutStopSec=10
#WatchdogSec=@SVX_WatchdogSec@
#NotifyAccess=main
LimitCORE=infinity
WorkingDirectory=@SVX_SYSCONF_INSTALL_DIR@

[Install]
WantedBy=multi-user.target
Quello che mi sono sempre chiesto e mai riuscito a capire da solo é: chi passa i parametri PIDFILE, LOGFILE, CFGFILE ecc?
Supponendo che il servizio venga avviato in automatico all'avvio del sistema operativo (secondo i parametri specificati nel file di configurazione in questione), chi passa quei parametri descritti sopra?
Grazie a tutti coloro che risponderanno
Christian
“I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile.”
Albert Einstein
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Parametri file configurazione systemctl per gestione servizio

Messaggio da vaeVictis »

In che senso chi glieli passa? Il programma avrà una routine per leggere e interpretare il file di configurazione.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2855
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Parametri file configurazione systemctl per gestione servizio

Messaggio da DoctorStrange »

La sequenza di avvio è una specie di daisy chain. Vengono avviati, uno dopo l'altro tutta una serie di servizi, che vengono a loro volta descritti da questi unit file. Uno di questi unit file, è quello che hai postato. L'ultima parte, quella identificata da "Install" - "WantedBy", indica che, affinche questo specifico unit file possa essere eseguito, deve prima essere eseguito (con successo), un precedente unit file, che si chiama, in questo caso, "multi-user.target".

Nella versione piu semplice quindi, tutti i parametri che hai citato, sono stati inizializzati e pubblicati da multi-user.target.

Tendenzialmente comunque, il sistema operativo mette a disposizione del processo di avvio tutta una serie di variabili globali che sono disponibili a chiunque ne faccia richiesta, e vengono inizializzate dai moduli principali del kernel, che vengono avviati prima dello user space, che è quello dove SystemD (e quindi gli unit file) entra in funzione.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti