Допустим, я только что запустил команду, выполнение которой займет много времени, например, hg clone
весь набор разработки Pypy. На полпути я решил, что хочу запустить другой процесс, например hg up
, , как только первый вернется. Есть ли способ прикрепить команду для выполнения при возвращении процесса, не останавливая команду/процесс и не перезапуская ее как связанную команду? команда/процесс?
решение1
Предполагая, что вы используете bash
, и предполагая, что вы поместили длительную задачу в фоновый режим текущей оболочки, либо запустив ее longtask &
, либо запустив задачу, а затем нажав CTRL+ Z, тогда вы можете добавить дополнительную команду для запуска, например:
$ sleep 45 &
[1] 27722
$ wait 27722 && echo "Done"
[1]+ Done sleep 45
Done
$
В приведенном выше примере echo "Done"
выполняется только после завершения процесса wait
с идентификатором PID 27722.
Я не нашел способа перевести эту дополнительную команду в фоновый режим, чтобы вы могли продолжать работать в той же оболочке. Должен быть способ сделать это — надеюсь, это даст вам старт.