Как приостановить и возобновить процессы

В терминале bash я могу нажать Control + Z , чтобы приостановить любой запущенный процесс ... затем я могу напечатать fg, чтобы возобновить процесс.

Можно ли приостановить процесс, если у меня есть только PID? И если да, какую команду я должен использовать?

Я ищу что-то вроде:

suspend-process $PID_OF_PROCESS

, а затем возобновить его с помощью

resume-process $PID_OF_PROCESS
121 голос | спросил Stefan 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 16 Sep 2010 01:07:27 +0400 2010, 01:07:27

2 ответа


146

Вы можете использовать kill, чтобы остановить процесс.

Для «вежливой» остановки процесса (предпочитайте это для нормального использования), отправьте SIGTSTP:

kill -TSTP [pid]

Для «жесткой» остановки отправьте SIGSTOP:

kill -STOP [pid]

Обратите внимание, что если процесс, который вы пытаетесь остановить с помощью PID, находится в таблице заданий вашей оболочки, он может оставаться видимым там, но завершен, пока процесс не будет fg 'd снова.

Чтобы возобновить выполнение процесса, отправьте SIGCONT:

kill -CONT [pid]
ответил Steve Burdine 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 16 Sep 2010 01:33:31 +0400 2010, 01:33:31
40

Для этого вы должны использовать команду kill.

Чтобы быть более подробным - вы должны указать правильный сигнал , т. е.

$ kill -TSTP $PID_OF_PROCESS

для приостановки процесса и

$ kill -CONT $PID_OF_PROCESS

для его возобновления. Документировано здесь .

ответил maxschlepzig 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 16 Sep 2010 01:15:04 +0400 2010, 01:15:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132