Окрім того, nohup
ви можете запустити процес у фоновому режимі, використовуючи "&" та підрозділ:
Суфіксуйте команду з & і загорніть її в дужки
$ (thecommand args &)
Скажімо, ваш процес отримує під 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
Подивіться, що це не приєднано до процесу оболонки 11473, який був його початковим батьківським. Отже, якщо ви вийдете або вб'єте поточну оболонку (11473), процес 11922 продовжує працювати, і він буде відключений від очок.
Спробуйте вийти з оболонки та введіть нову оболонку. Навіть якщо ця оболонка підключена до одних і тих же очок, ви можете бачити процес зараз без pts:
$ ps -fp 11922
UID PID PPID C STIME TTY TIME CMD
usr 11922 1 0 15:11 ? 00:00:00 thecommand
Я не знаю, як це називається або задокументовано в Posix, але я використовую цей шлях з 1990 року в bsh, ksh і тепер у bash.
Нарешті, ви можете використовувати bg
вбудовану команду оболонки:
Просто запустіть програму, і якщо ви вирішите призупинити її або плануєте залишати її у фоновому режимі, наберіть CTRL + Z:
$ thecommand
^Z
[1] Stopped thecommand
Тепер нехай він продовжує працювати у фоновому режимі:
$ bg
[1]+ thecommand &
Якщо ви подивитесь на інформацію про процес, він ще має батьківський процес:
$ 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
Отже, вихід із поточного процесу. Процес запуску у фоновому режимі не пов’язаний із початковим батьківським і продовжує працювати у фоновому режимі:
$ exit
Ще раз увійдіть та подивіться інформацію про процес:
$ ps -f 12571
UID PID PPID C STIME TTY TIME CMD
usr 12571 1 0 16:00 ? 00:00:00 thecommand
disown
команду. Повертається: bash: попередження: видалення зупиненого завдання 1 з групою процесів 24876. Тепер моя робота внесена до списку,ps -all
але, здається, не працює (використання процесора 0%)