Introduzione
Il disown
Il comando fa parte delle shell ksh, bash e zsh di Unix e viene utilizzato per rimuovere i lavori dalla shell corrente. Come cd
o pwd
, è un comando integrato nella shell e non richiede privilegi di root.
Questo tutorial tratterà diversi modi in cui puoi utilizzare il disown
comando in Linux per terminare i lavori e mantenerli in esecuzione dopo la disconnessione.
Prerequisiti
- Un sistema che esegue Linux
- Accesso alla riga di comando/finestra del terminale
Rinnega la sintassi dei comandi
La sintassi di base per il disown
il comando è:
disown [options] jobID1 jobID2 ... jobIDN
Utilizzo del comando disown in Linux
Il disown
Il comando in Linux viene utilizzato per rimuovere i lavori dalla tabella dei lavori. Puoi anche usarlo per mantenere un lavoro più lungo e complesso in esecuzione in background anche dopo esserti disconnesso dal server.
Esamina i lavori in corso
Per utilizzare il disown
comando, devi prima avere i lavori in esecuzione sul tuo sistema Linux.
In questo esempio, avvieremo un paio di lavori in esecuzione in background:
cat /dev/random > /dev/null &
ping google.com > /dev/null &
Usa i jobs
comando per elencare tutti i lavori correnti:
jobs -l
Dovresti ottenere un output simile a quello visto di seguito:
Il ping
il comando è indicato da '+' , il che significa che è un lavoro attualmente attivo.
Il cat
comando è indicato da '-' , il che significa che diventerà il lavoro attivo se il ping
comando è terminato.
Rimuovi tutti i lavori
Per rimuovere tutti i lavori dalla tabella dei lavori, utilizzare il comando seguente:
disown -a
Rimuovi lavori specifici
Se desideri rimuovere un lavoro specifico dalla tabella dei lavori, utilizza il disown
comando con l'ID lavoro appropriato. L'ID del lavoro è elencato tra parentesi nella tabella dei lavori:
Nel nostro esempio, se vogliamo rimuovere il ping
comando, dobbiamo usare il disown
comando sul lavoro 2:
disown %2
Usando il disown
comando senza opzioni o ID lavoro rimuove l'ultimo lavoro nella tabella dei lavori:
Rimuovi lavori attualmente in esecuzione
Per rimuovere solo i lavori attualmente in esecuzione, utilizza il seguente comando:
disown -r
Nel nostro esempio, il comando sopra menzionato cancella la tabella dei lavori, poiché entrambi i lavori sono attualmente in esecuzione in background:
Mantieni i lavori in esecuzione dopo la disconnessione
Una volta che esci dal terminale del tuo sistema, tutti i lavori attualmente in esecuzione vengono terminati automaticamente. Per evitarlo, usa il disown
comando con il -h
opzione:
disown -h jobID
Nel nostro esempio, vogliamo mantenere il cat
comando in esecuzione in background. Per evitare che venga terminato all'uscita, utilizzare il seguente comando:
disown -h %1
Dopo aver utilizzato il disown
comando, chiudi il terminale:
exit
Tutti i lavori che hai utilizzato sono disown -h
il comando su continuerà a essere eseguito.