Зупинене завдання - це тимчасово виведене на другий план і більше не працює, але все ще використовує ресурси (тобто системну пам'ять). Оскільки це завдання не приєднано до поточного терміналу, воно не може виробляти вихід і не отримує вхід від користувача.
Ви можете бачити завдання, які виконуєте, використовуючи jobs
вбудовану команду в bash, ймовірно, і інші оболонки. Приклад:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
Ви можете відновити зупинену роботу за допомогою fg
вбудованої команди (переднього плану) bash. Якщо у вас кілька команд, які були зупинені, ви повинні вказати, яку з них відновити, передавши номер робочого коду в командному рядку fg
. Якщо зупинена лише одна програма, ви можете користуватися fg
окремо:
user@mysystem:~$ fg 1
python
У цей момент ви знову в інтерпретаторі python і можете вийти, використовуючи control-D.
І навпаки, ви можете kill
виконувати команду з або jobspec або PID. Наприклад:
user@mysystem:~$ ps
PID TTY TIME CMD
16174 pts/3 00:00:00 bash
17781 pts/3 00:00:00 python
18276 pts/3 00:00:00 ps
user@mysystem:~$ kill 17781
[1]+ Killed python
user@mysystem:~$
Щоб використовувати taskpec, передуйте цифрі за допомогою клавіші відсоток (%):
user@mysystem:~$ kill %1
[1]+ Terminated python
Якщо ви випустите команду виходу із зупиненими завданнями, з’явиться попередження, яке ви побачили. Роботи залишатимуться для забезпечення безпеки. Це для того, щоб переконатися, що ви знаєте, що намагаєтесь вбити роботу, яку, можливо, забули, що зупинилися. Вдруге, коли ви використовуєте команду exit, завдання припиняються і оболонка виходить. Це може спричинити проблеми для деяких програм, які не призначені для вбивства таким чином.
Здається, в bash ви можете використовувати logout
команду, яка знищить зупинені процеси та вихід. Це може спричинити небажані результати.
Також зауважте, що деякі програми можуть не закриватись, коли вони припиняються таким чином, і ваша система може закінчитися безліччю осиротілих процесів, використовуючи ресурси, якщо ви зробите звичку робити це.
Зауважте, що ви можете створити фоновий процес, який зупиниться, якщо вони потребують введення користувача:
user@mysystem:~$ python &
[1] 19028
user@mysystem:~$ jobs
[1]+ Stopped python
Ви можете відновити та вбити ці завдання так само, як ви виконували роботи, які ви припинили з Ctrl-z
перериванням.