Présentation
Le disown
La commande fait partie des shells Unix ksh, bash et zsh et est utilisée pour supprimer des tâches du shell actuel. Comme cd
ou pwd
, il s'agit d'une commande intégrée au shell et ne nécessite pas de privilèges root.
Ce didacticiel couvrira différentes manières d'utiliser le disown
commande sous Linux pour à la fois mettre fin aux travaux et les maintenir en cours d'exécution après la déconnexion.
Prérequis
- Un système exécutant Linux
- Accès à la ligne de commande/fenêtre du terminal
désavouer la syntaxe de commande
La syntaxe de base pour le disown
la commande est :
disown [options] jobID1 jobID2 ... jobIDN
Utilisation de la commande disown sous Linux
Le disown
La commande sous Linux est utilisée pour supprimer les travaux de la table des travaux. Vous pouvez également l'utiliser pour exécuter en arrière-plan une tâche plus longue et plus complexe, même après vous être déconnecté du serveur.
Examiner les tâches en cours
Pour utiliser le disown
commande, vous devez d'abord avoir des tâches en cours d'exécution sur votre système Linux.
Dans cet exemple, nous allons démarrer quelques tâches exécutées en arrière-plan :
cat /dev/random > /dev/null &
ping google.com > /dev/null &
Utiliser les jobs
commande pour lister toutes les tâches en cours :
jobs -l
Vous devriez obtenir une sortie similaire à celle ci-dessous :
Le ping
la commande est notée par ‘+’ , ce qui signifie qu'il s'agit d'une tâche actuellement active.
Le cat
la commande est notée par ‘-’ , ce qui signifie qu'il deviendra le travail actif si le ping
la commande est terminée.
Supprimer toutes les tâches
Pour supprimer tous les travaux de la table des travaux, utilisez la commande suivante :
disown -a
Supprimer des tâches spécifiques
Si vous souhaitez supprimer une tâche spécifique de la table des tâches, utilisez le disown
commande avec l'ID de travail approprié. L'ID de tâche est indiqué entre parenthèses dans le tableau des tâches :
Dans notre exemple, si nous voulons supprimer le ping
commande, nous devons utiliser la commande disown
commande sur le travail 2 :
disown %2
Utiliser le disown
La commande sans aucune option ni ID de tâche supprime la dernière tâche de la table des tâches :
Supprimer les tâches en cours d'exécution
Pour supprimer uniquement les tâches en cours d'exécution, utilisez la commande suivante :
disown -r
Dans notre exemple, la commande mentionnée ci-dessus efface la table des tâches, car les deux tâches sont actuellement exécutées en arrière-plan :
Conservez les tâches en cours d'exécution après votre déconnexion
Une fois que vous quittez le terminal de votre système, toutes les tâches en cours d'exécution sont automatiquement terminées. Pour éviter cela, utilisez le disown
commande avec le -h
choix :
disown -h jobID
Dans notre exemple, nous souhaitons conserver le cat
commande s'exécutant en arrière-plan. Pour éviter qu'il ne se termine à la sortie, utilisez la commande suivante :
disown -h %1
Après avoir utilisé le disown
commande, fermez le terminal :
exit
Toutes les tâches pour lesquelles vous avez utilisé le disown -h
la commande on continuera à s'exécuter.