start-stop-daemon(8)

NOME
start-stop-daemon - avvia e ferma i programmi demone di sistema

SINTASSI
start-stop-daemon [opzione...] comando

DESCRIZIONE
start-stop-daemon viene usato per controllare la creazione e la terminazione dei processi a livello di sistema. Usando una delle opzioni corrispondenti, start-stop-daemon può essere configurato per trovare le istanze esistenti di un processo in esecuzione.

Note: unless --pid or --pidfile are specified, start-stop-daemon behaves similar to killall(1). start-stop-daemon will scan the process table looking for any processes which match the process name, parent pid, uid, and/or gid (if specified). Any matching process will prevent --start from starting the daemon. All matching processes will be sent the TERM signal (or the one specified via --signal or --retry) if --stop is specified. For daemons which have long-lived children which need to live through a --stop, you must specify a pidfile.

COMANDI

-S, --start [--] argomenti
    Controlla l'esistenza di un processo specifico. Se tale processo esiste, start-stop-daemon non fa nulla ed esce con lo stato di errore 1 (0 se viene specificato --oknodo). Se tale processo non esiste, viene avviata un'istanza usando l'eseguibile specificato da --exec oppure, se presente, da --startas. Tutti gli argomenti specificati dopo -- sulla riga di comando vengono passati immutati al programma che viene avviato.

-K, --stop
    Controlla l'esistenza di un processo specificato. Se un tale processo esiste, start-stop-daemon gli invia il segnale specificato da --signal ed esce con lo stato di errore 0. Se tale processo non esiste, start-stop-daemon esce con stato di errore 1 (0 se viene specificato --oknodo). Se viene usata l'opzione --retry, allora start-stop-daemon controllerà che i processi siano stati terminati.

-T, --status
    Controlla l'esistenza di un processo specificato e restituisce un codice di stato di uscita in base alle LSB Init Script Actions.

-H, --help
    Visualizza informazioni sull'uso ed esce.

-V, --version
    Visualizza la versione del programma ed esce.

OPZIONI

  Opzioni per corrispondenze

--pid pid
    Controlla un processo con il pid specificato. Il pid deve essere un numero maggiore di 0.

--ppid ppid
    Check for a process with the specified ppid (parent pid). The ppid must be a number greater than 0.

-p, --pidfile file-pid
    Controlla se un processo ha creato il file file-pid. Nota: usare questa opzione di corrispondenza da sola può causare effetti su processi non desiderati, se il vecchio processo è stato terminato senza aver potuto rimuovere il file-pid.

-x, --exec eseguibile
    Cerca i processi che sono istanze di questo eseguibile. L'argomento eseguibile dovrebbe essere un nome di percorso assoluto. Nota: questo potrebbe non funzionare come atteso con gli script interpretati, dato che l'eseguibile punterà all'interprete. Tenere in considerazione che faranno corrispondenza anche i processi in esecuzione in una chroot, perciò potrebbero essere necessarie altre restrizioni della corrispondenza.

-n, --name nome-processo
    Cerca i processi con nome nome-processo. Questo è solitamente il nome del file del processo, ma potrebbe essere stato cambiato dal processo stesso. Nota: nella maggior parte dei sistemi questa informazione viene recuperata del nome comm del processo nel kernel, che tende ad avere limiti di lunghezza piuttosto limitati (nell'assunzione che più di 15 caratteri non siano portabili).

-u, --user nomeutente|uid
    Cerca i processi di proprietà dell'utente specificato da nomeutente o uid. Nota: l'uso di questa opzione di corrispondenza da sola farà sì che l'azione abbia effetto su tutti i processi corrispondenti all'utente.

  Opzioni generiche

-g, --group gruppo|gid
    Modifica in group o gid quando avvia il processo.

-s, --signal segnale
    Con --stop specifica il segnale da inviare ai processi che vengono fermati (quello predefinito è TERM).

-R, --retry scadenza|pianificazione
    Con --stop specifica che start-stop-daemon deve controllare se i processi terminano effettivamente. Controlla ripetutamente se qualsiasi processo corrispondente è in esecuzione fino a che nessuno lo è più. Se i processi non terminano, effettua altre azioni in base alla pianificazione. Se viene specificata una scadenza invece di una pianificazione, allora viene usata la pianificazione segnale/scadenza/KILL/scadenza, dove segnale è il segnale specificato da --signal. pianificazione è un elenco di almeno due elementi separati da barre (/); ciascun elemento può essere -numero-segnale o [-]nome-segnale, che significa inviare quel segnale, o scadenza, che significa aspettare che il processo termini per quel numero di secondi, oppure forever, che significa ripetere il resto della pianificazione all'infinito, se necessario. Se viene raggiunta la fine della pianificazione e non viene specificato forever, allora start-stop-daemon esce con stato di errore 2. Se viene specificata una pianificazione, allora viene ignorato qualsiasi segnale specificato con --signal.

-a, --startas nomepercorso
    Con --start, avvia il processo specificato da nomepercorso. Se non specificato, viene usato in modo predefinito l'argomento fornito a --exec.

-t, --test
    Visualizza le azioni che sarebbero effettuate e imposta il valore restituito appropriato, ma non fa alcuna azione.

-o, --oknodo
    Restituisce lo stato di uscita 0 invece di 1 se non viene (o non verrebbe) fatta alcuna azione.

-q, --quiet
    Non visualizza messaggi informativi; mostra solo i messaggi di errore.

-c, --chuid nomeutente|uid[:gruppo|gid]
    Cambia a questo nome utente/UID prima di avviare il processo. Si può anche specificare un gruppo aggiungendo in fondo un carattere :, seguito dal gruppo o GID nello stesso modo usato per il comando «chown» (utente:gruppo). Se un utente viene specificato senza un gruppo, viene usato il GID primario di tale utente. Quando si usa questa opzione si deve avere ben chiaro che, anche se non viene specificata l'opzione --group, vengono impostati anche il gruppo primario e quelli supplementari. L'opzione --group è solo per i gruppi di cui l'utente non fa normalmente parte (ad esempio aggiungere l'appartenenza ad un gruppo per singoli processi, per gli utenti generici come nobody).

-r, --chroot root
    Cambia la directory e la chroot a root prima di avviare il processo. Notare che anche il filepid viene scritto dopo chroot.

-d, --chdir percorso
    Cambia la directory a percorso prima di avviare il processo. Questo viene fatto dopo chroot, se viene usata l'opzione -r|--chroot. Quando non specificato, start-stop-daemon cambia la directory in quella root prima di avviare il processo.

-b, --background
    Usata tipicamente con i programmi che non si scollegano da soli. Questa opzione forza start-stop-daemon a fare il fork prima di avviare il processo e a forzarlo sullo sfondo. ATTENZIONE: start-stop-daemon non può controllare lo stato di uscita se il processo fallisce l'esecuzione per qualsiasi ragione. Questa è un rimedio estremo, ed è pensato solamente per i programmi che non ha senso facciano il fork da soli o quando non è possibile aggiungere il codice per far sì che lo facciano da soli.

-C, --no-close
    Non chiude alcun descrittore di file quando forza il demone sullo sfondo. Usato a scopo di debug per vedere l'output del processo, o per ridirigere i descrittori di file per registrare l'output del processo. Ha importanza solo quando viene usato --background.

-N, --nicelevel int
    Modifica la priorità del processo prima di avviarlo.

-P, --procsched politica:priorità
    Modifica la politica e la priorità per la pianificazione del processo prima di avviarlo. La priorità può essere facoltativamente specificata aggiungendo in fondo un carattere : seguito dal valore. Il valore predefinito di priorità è 0. I valori per la politica attualmente supportati sono other, fifo e rr.

-I, --iosched classe:priorità
    Modifica la classe e la priorità del pianificatore di I/O del processo prima di avviarlo. La priorità può essere facoltativamente specificata aggiungendo in fondo un carattere : seguito dal valore. Il valore predefinito di priorità è 4, a meno che classe non sia idle nel qual caso priorità è sempre 7. I valori attualmente supportati per classe sono idle, best-effort e real-time.

-k, --umask maschera
    Imposta l'umask del processo prima di avviarlo.

-m, --make-pidfile
    Used when starting a program that does not create its own pid file. This option will make start-stop-daemon create the file referenced with --pidfile and place the pid into it just before executing the process. Note, the file will only be removed when stopping the program if --remove-pidfile is used. NOTE: This feature may not work in all cases. Most notably when the program being executed forks from its main process. Because of this, it is usually only useful when combined with the --background option.

--remove-pidfile
    Used when stopping a program that does not remove its own pid file. This option will make start-stop-daemon remove the file referenced with --pidfile after terminating the process.

-v, --verbose
    Visualizza messaggi informativi dettagliati.

STATO D'USCITA

0   L'azione richiesta è stata effettuata. Se è stata specificata --oknodo, è anche possibile che non sia stato necessario fare nulla. Ciò può avvenire quando viene specificata l'opzione --start e un processo corrispondente è già in esecuzione, oppure quando viene specificata --stop e non c'è alcun processo corrispondente.

1   Se non è stata specificata --oknodo e non è stato fatto nulla.

2   Se sono state specificate --stop e --retry, ma è stata raggiunta la fine della pianificazione e il processo era ancora in esecuzione.

3   Qualsiasi altro errore.

Quando si usa il comando --status, vengono restituiti i seguenti codici di stato:

0   Il programma è in esecuzione.

1   Il programma non è in esecuzione e il file PID esiste.

3   Il programma non è in esecuzione.

4   Non è stato possibile determinare lo stato del programma.

ESEMPIO
Avvia il demone pippod, a meno che uno non sia già in esecuzione (un processo chiamato pippod, in esecuzione come utente pippod, con PID in pippod.pid):

    start-stop-daemon --start --oknodo --user pippod --name pippod \
    	--pidfile /run/pippod.pid --startas /usr/sbin/pippod \
    	--chuid pippod -- --daemon

Invia SIGTERM a pippod e attende fino a 5 secondi che esso si fermi:

    start-stop-daemon --stop --oknodo --user pippod --name pippod \
    	--pidfile /run/pippod.pid --retry 5

Dimostrazione di una pianificazione personalizzata per fermare pippod:

    start-stop-daemon --stop --oknodo --user pippod --name pippod \
    	--pidfile /run/pippod.pid --retry=TERM/30/KILL/5