MyTetra Share
Делитесь знаниями!
Чем интересна игра авиатор.
Linux: Как запустить команду в фоне чтобы она не была остановлена (заморожена)
Время создания: 08.08.2014 17:09
Текстовые метки: linux, программа, команда, фон, фоновый процесс, остановка, заморозка
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1407503380lijnek6eye/text.html на raw.github.com

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

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

watch data >> /tmp/data.txt

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

watch data >> /tmp/data.txt &

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

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

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

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

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

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