Alors imaginons le cas suivant :

  • Vous avez lancé un job qui va prendre LONNNNNNNNNNNGTEMPS à se finir dans un terminal
  • Vous devez impérativement quitter le terminal en question (fin du taff, on doit rentrer chez soi, etc) ou vous avez peut que votre shell soit tué
  • Vous ne pouvez pas vous permettre de couper le job en question

La solution

Mise en pause du processus

root@~>/bin/sh -c /home/moi/bin/mon_script.sh > /dev/null
Ctrl + z
1+  Stopped                 /bin/sh -c /home/moi/bin/mon_script.sh > /dev/null

Récupération du PID

root@~> ps aux |grep mon_script
root 26911  0.0  0.0   2404  1040 ?        Ss   08:12   0:00 /bin/sh -c /home/moi/bin/mon_script.sh > /dev/null

Mise en background

root@~> bg
1+ /bin/sh -c /home/moi/bin/mon_script.sh > /dev/null &

Détachement du owner du PID

root@~> disown -h 26911

Et voila

Vous pouvez maintenant fermer votre terminal, votre job se poursuivra sans risque de se faire couper !

@ bientôt