|
В интернете нашел интересную информацию по поводу запуска команды в консоли операционной системы Linux, например Ubuntu.
Во многих мануалах написано, что для запуска команду в фоне, нужно в конце нее поставить амперсанд &.
При этом обычный запуск выглядит следующим образом:
watch data >> /tmp/data.txt |
Запуск в фоне выполняется так:
watch data >> /tmp/data.txt & |
Проблема в том, что при таком способе запуска программа в фоне заморозится и не будет работать, пока ее не вызовут в foreground командой fg. Это происходит из-за того, что родителем запускаемого процесса будет bash-шелл, и если программа будет продолжать работать, стандартный ввод/вывод данной программы будет путаться с вводом/выводом шелла.
Для правильного запуска без остановки в фоне выполняется команда:
(watch data >> /tmp/data.txt &) |
При таком запуске родителем программы будет непосредстванно init.
P.S.: родителя запущенной программы можно увидеть через htop, переключившись на древовидное представление.
P.P.S.: первоисточник тут:
https://webhamster.ru/mytetrashare/index/mtb0/14075033802o20cd03u8
Вы также можете ознакомиться с другими статьями:
12th Июл 2017
|
Теги:
|