Control+Z используется для приостановки процесса, посылая ему сигнал SIGSTOP
, который не может быть перехвачен программой. В то время как Control+C используется для уничтожения процесса с сигналом SIGINT
, и может быть перехвачен программой, чтобы она могла почистить себя перед выходом, или не выходить вообще.
Если вы приостановите процесс, это появится в оболочке, чтобы сказать вам, что он был приостановлен:
[1]+ Stopped yes
Однако, если вы убьете процесс, вы не увидите никакого подтверждения, кроме того, что он был сброшен обратно в командную строку оболочки. Когда вы приостанавливаете процесс, вы можете делать с ним и модные вещи. Например, запуск:
fg
С программой, приостановленной, вернет ее на передний план.
И запуск команды
bg
С программой, приостановленной, позволит ей работать в фоновом режиме (вывод программы все равно будет идти в TTY, однако).
Если вы хотите убить приостановленную программу, вам не нужно возвращать ее обратно с fg
, вы можете просто сделать команду:
kill %1
Если у вас есть несколько приостановленных команд, запустив
jobs
, вы увидите их список, как показано ниже:
[1]- Stopped pianobar
[2]+ Stopped yes
Использование %#
, где #
- номер задания (номер в квадратных скобках из вывода jobs
) с bg
, fg
, или kill
, может быть использовано для выполнения действий над этим заданием.