MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Linux: Как запустить команду в фоне чтобы она не была остановлена (заморожена)
08.08.2014
17:09
Текстовые метки: linux, программа, команда, фон, фоновый процесс, остановка, заморозка
Раздел: Компьютер - Linux - Bash - Команды и скрипты

Во многих мануалах написано, что чтобы запустить команду в фоне, нужно вконце нее поставить амперсанд &.

Обычный запуск

watch data >> /tmp/data.txt

Запуск в фоне:

watch data >> /tmp/data.txt &

Проблема в том, что при таком способе запуска программа в фоне заморозится и не будет работать, пока ее не вызовут в foreground командой fg. Это происходит из-за того, что родителем запускаемого процесса будет bash-шелл, и если программа будет продолжать работать, стандартный ввод/вывод данной программы будет путаться с вводом/выводом шелла.

Запуск без остановки в фоне:

(watch data >> /tmp/data.txt &)

При таком запуске родителем программы будет непосредстванно init.

Хинт: родителя запущенной программы можно увидеть через htop, переключившись на древовидное представление.

Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования