Присоедините команду для выполнения при возврате долго выполняющегося потока

Присоедините команду для выполнения при возврате долго выполняющегося потока

Допустим, я только что запустил команду, выполнение которой займет много времени, например, 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.

Я не нашел способа перевести эту дополнительную команду в фоновый режим, чтобы вы могли продолжать работать в той же оболочке. Должен быть способ сделать это — надеюсь, это даст вам старт.

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