En plus de nohup
vous pouvez lancer le processus en arrière-plan en utilisant "&" et sous-shell:
Suffixez la commande avec & et enveloppez-la entre parenthèses
$ (thecommand args &)
Disons que votre processus gagne le pid 1922:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
usr 11473 2643 0 15:07 pts/1 00:00:00 bash
usr 11922 1 0 15:11 pts/1 00:00:00 thecommand
Regardez qu'il n'est pas attaché au processus shell 11473 qui était son parent d'origine. Donc, si vous quittez ou tuez le shell actuel (11473), le processus 11922 continue de fonctionner et il sera déconnecté des pts.
Essayez de quitter le shell et entrez dans un nouveau shell. Même si ce shell est connecté aux mêmes points, vous pouvez maintenant voir le processus sans point:
$ ps -fp 11922
UID PID PPID C STIME TTY TIME CMD
usr 11922 1 0 15:11 ? 00:00:00 thecommand
Je ne sais pas comment c'est appelé ou documenté dans Posix, mais j'utilise cette méthode depuis 1990 dans bsh, ksh et maintenant dans bash.
Enfin, vous pouvez utiliser la bg
commande shell intégrée:
Lancez simplement votre programme et si vous décidez de le suspendre ou si vous prévoyez de le garder en arrière-plan, tapez CTRL + Z:
$ thecommand
^Z
[1] Stopped thecommand
Maintenant, laissez-le continuer à fonctionner en arrière-plan:
$ bg
[1]+ thecommand &
Si vous regardez les infos du processus, il a encore un processus parent:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
usr 12046 2643 0 15:18 pts/6 00:00:00 bash
usr 12571 12046 0 16:00 pts/6 00:00:00 thecommand
usr 12601 12046 0 16:04 pts/6 00:00:00 ps -f
Alors, quittez le processus en cours. Le processus en cours d'exécution en arrière-plan est détaché de son parent d'origine et continue de s'exécuter en arrière-plan:
$ exit
Connectez-vous à nouveau et consultez les informations sur le processus:
$ ps -f 12571
UID PID PPID C STIME TTY TIME CMD
usr 12571 1 0 16:00 ? 00:00:00 thecommand
disown
commande. Il a renvoyé: bash: avertissement: suppression du travail 1 arrêté avec le groupe de processus 24876. Mon travail est maintenant répertoriéps -all
mais semble ne pas fonctionner (l'utilisation du processeur est de 0%)