nohup node server.js > /dev/null 2>&1 &
nohup
signifie :Ne terminez pas ce processus même lorsque le stty est coupé.> /dev/null
signifie :stdout va à /dev/null (qui est un périphérique factice qui n'enregistre aucune sortie).2>&1
signifie :stderr va également vers la sortie standard (qui est déjà redirigée vers/dev/null
). Vous pouvez remplacer &1 par un chemin de fichier pour conserver un journal des erreurs, par exemple :2>/tmp/myLog
&
à la fin signifie :exécutez cette commande en tâche de fond.
Solution simple (si vous n'êtes pas intéressé à revenir au processus, voulez juste qu'il continue à fonctionner) :
nohup node server.js &
Il y a aussi le jobs
commande pour voir une liste indexée de ces processus en arrière-plan. Et vous pouvez tuer un processus en arrière-plan en exécutant kill %1
ou kill %2
le numéro étant l'indice du processus.
Solution puissante (permet de se reconnecter au processus s'il est interactif) :
screen
Vous pouvez ensuite détacher en appuyant sur Ctrl+a+d puis rattacher en exécutant screen -r
Considérez également la nouvelle alternative à l'écran, tmux.
Vous devriez vraiment essayer d'utiliser screen
. C'est un peu plus compliqué que de simplement faire nohup long_running &
, mais comprendre l'écran une fois que vous ne revenez plus jamais.
Démarrez d'abord votre session d'écran :
[email protected]:~$ screen
Exécutez tout ce que vous voulez :
wget http://mirror.yandex.ru/centos/4.6/isos/i386/CentOS-4.6-i386-binDVD.iso
Appuyez sur ctrl+A puis sur d. Fait. Votre session se poursuit en arrière-plan.
Vous pouvez lister toutes les sessions par screen -ls
, et attachez-les à certains par screen -r 20673.pts-0.srv
commande, où 0673.pts-0.srv est une liste d'entrées.