Могу ли я изменить или заранее завершить часть работающей составной команды bash, разделенной ;?

Могу ли я изменить или заранее завершить часть работающей составной команды bash, разделенной ;?

Я запускаю несколько команд bash, разделенных точкой с запятой:

% long-running-command-I-want ; another-command-I-dont

все еще работает ; естественно , пока long-running-command-I-wantнет . Я хотел бы заранее убить/отменить/предотвратить выполнение , не убивая , которого я ждал некоторое время. Могу ли я это сделать? Если да, то как?pidanother-command-I-dontanother-command-I-dontlong-running-command-I-want

решение1

Если вы запустите другую оболочку, вы можете узнать PID , bashкоторая выполняет программу, которую вы хотите продолжить. Если это bashPID, то отправьте сигнал прерывания с помощью:

kill -2 bashPID

Это остановит выполнение оставшейся части командной строки.

При желании в исходной оболочке вы можете ввести Ctrl-, zчтобы временно приостановить запущенную программу в фоновом режиме. Это продолжится с остальной частью командной строки, которая будет очищена сигналом прерывания. Затем вы можете возобновить запущенную программу с помощью fgили bg, в зависимости от того, хотите ли вы, чтобы она продолжила работу в фоновом режиме или в фоновом режиме.

Связанный контент