
Я запускаю несколько команд bash, разделенных точкой с запятой:
% long-running-command-I-want ; another-command-I-dont
все еще работает ; естественно , пока long-running-command-I-want
нет . Я хотел бы заранее убить/отменить/предотвратить выполнение , не убивая , которого я ждал некоторое время. Могу ли я это сделать? Если да, то как?pid
another-command-I-dont
another-command-I-dont
long-running-command-I-want
решение1
Если вы запустите другую оболочку, вы можете узнать PID , bash
которая выполняет программу, которую вы хотите продолжить. Если это bashPID
, то отправьте сигнал прерывания с помощью:
kill -2 bashPID
Это остановит выполнение оставшейся части командной строки.
При желании в исходной оболочке вы можете ввести Ctrl-, zчтобы временно приостановить запущенную программу в фоновом режиме. Это продолжится с остальной частью командной строки, которая будет очищена сигналом прерывания. Затем вы можете возобновить запущенную программу с помощью fg
или bg
, в зависимости от того, хотите ли вы, чтобы она продолжила работу в фоновом режиме или в фоновом режиме.