Остановленное задание - это задание, которое было временно переведено в фоновый режим и больше не выполняется, но все еще использует ресурсы (т. Е. Системную память). Поскольку это задание не подключено к текущему терминалу, оно не может произвести вывод и не получает ввод от пользователя.
Вы можете увидеть выполняемые вами задания, используя jobs
встроенную команду в bash, возможно, и другие оболочки. Пример:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
Вы можете возобновить остановленную работу с помощью fg
встроенной команды (на переднем плане) bash. Если у вас есть несколько команд, которые были остановлены, вы должны указать, какую из них возобновить, передав в командной строке номер спецификаций заданий fg
. Если остановлена только одна программа, вы можете использовать fg
только:
user@mysystem:~$ fg 1
python
В этот момент вы вернулись в интерпретатор python и можете выйти, используя control-D.
И наоборот, вы можете kill
использовать команду с указанием ее задания или 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:~$
Чтобы использовать спецификацию заданий, перед числом введите клавишу процента (%):
user@mysystem:~$ kill %1
[1]+ Terminated python
Если вы выполните команду выхода с остановленными заданиями, появится предупреждение, которое вы увидели. Работы будут оставлены для безопасности. Это делается для того, чтобы вы знали, что пытаетесь убить работу, о которой забыли, что остановились. При втором использовании команды выхода задания завершаются, и оболочка завершается. Это может вызвать проблемы для некоторых программ, которые не предназначены для уничтожения таким способом.
В bash кажется, что вы можете использовать logout
команду, которая убьет остановленные процессы и завершит работу. Это может привести к нежелательным результатам.
Также обратите внимание, что некоторые программы могут не завершиться таким образом, и ваша система может закончить множеством потерянных процессов, используя ресурсы, если вы сделаете это привычкой.
Обратите внимание, что вы можете создать фоновый процесс, который остановится, если потребуется ввод данных пользователем:
user@mysystem:~$ python &
[1] 19028
user@mysystem:~$ jobs
[1]+ Stopped python
Вы можете возобновить и убить эти задания так же, как вы выполняли задания, которые были остановлены с помощью Ctrl-z
прерывания.