Приєднайте команду до виконання, коли повернеться тривалий потік


3

Скажімо, я щойно запустив команду, яку потрібно тривати довго, як hg cloneі весь набір розробок Pypy. На півдорозі я вирішую, що хотів би запустити ще один процес, наприклад hg up, як тільки повернеться перший. Чи є спосіб приєднати команду, яку потрібно виконати, коли процес повертається, не зупиняючи команду / процес, а потім перезапустити її як ланцюгову команду? команда / процес?

Відповіді:


3

Якщо припустити, що ви використовуєте bash, і якщо припустити, що ви розмістили давнє завдання на задній план поточної оболонки, запустивши longtask &або запустивши завдання, потім натиснувши CTRL+ Z, ви можете додати додаткову команду для запуску, наприклад:

$ sleep 45 &
[1] 27722
$ wait 27722 && echo "Done"
[1]+  Done   sleep 45
Done
$

У наведеному вище прикладі, echo "Done"файл виконується лише після завершення роботи waitна PID 27722.

Те, що я не знайшов, - це спосіб поставити цю додаткову команду на другий план, щоб ви могли продовжувати працювати в одній оболонці. Має бути спосіб зробити це, хоча - це, сподіваємось, може вас почати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.