Использование процессов сборки программного обеспечения Most make
. Удостоверьтесь, что Вы делаете make
используйте -j
спор с числом обычно о дважды количестве центральных процессоров Вы имеете, таким образом, make -j 8
подходило бы для Вашего случая.
Что касается демонов, делающих его, поэтому, они хотят любые выходные сигналы или сообщения об ошибках, которые они могли бы произвести, чтобы быть отброшенными, неважно, как Вы перенаправляете входные и выходные потоки процесса, это все еще будет SIGHUP'd, если это будет присоединено к сессии, и тот сеанс закрыт для отъезда выполнения процессов.
Для отъезда выполнения процессов существует немного подходов:
отсоедините их от сессии — демоны делают это путем разветвления нового процесса и затем выхода из исходного процесса; теперь новый процесс не имеет никакого родителя и принят init
можно также выполнить то использование удара, который отрицает внутренняя команда
использовать nohup
заблокировать процесс от получения SIGHUP, когда сессия умирает; процесс не получает SIGHUP, не выходит, его родитель умирает, и init принимает его
присоедините его к сессии, которая не умрет — экран использования
Перепроверьте, что Ваша работа над оператором "Задания не уничтожается при выходе из системы при выполнении с > /dev/null 2>&1 &
"
Это - поведение заданий на ударе насколько я знаю, я сделал тест здесь, и это продолжало бежать с теми потоками, открытыми также:
sergiopa@sergiopa:~/Downloads$ find / -print >/dev/null 2>&1 &
[1] 14152
sergiopa@sergiopa:~/Downloads$ jobs
[1]+ Running find / -print > /dev/null 2>&1 &
sergiopa@sergiopa:~/Downloads$ ps -ef | grep find
sergiopa 14152 13913 10 15:47 pts/18 00:00:01 find / -print
sergiopa 14195 13913 0 15:48 pts/18 00:00:00 grep --color=auto find
sergiopa@sergiopa:~/Downloads$
sergiopa@sergiopa:~/Downloads$ lsof -c find
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
find 14152 sergiopa cwd DIR 252,1 4096 4808 /usr/src/linux-headers-2.6.35-22/drivers/rapidio
find 14152 sergiopa rtd DIR 252,1 4096 2 /
find 14152 sergiopa txt REG 252,1 141980 391686 /usr/bin/find
find 14152 sergiopa mem REG 252,1 1421892 26489 /lib/libc-2.12.1.so
find 14152 sergiopa mem REG 252,1 118084 26452 /lib/ld-2.12.1.so
find 14152 sergiopa mem REG 252,1 149392 26485 /lib/libm-2.12.1.so
find 14152 sergiopa mem REG 252,1 30684 26469 /lib/librt-2.12.1.so
find 14152 sergiopa mem REG 252,1 121578 26490 /lib/libpthread-2.12.1.so
find 14152 sergiopa mem REG 252,1 2768240 391861 /usr/lib/locale/locale-archive
find 14152 sergiopa 0u CHR 136,18 0t0 21 /dev/pts/18 <<<<
find 14152 sergiopa 1w CHR 1,3 0t0 4293 /dev/null <<<<
find 14152 sergiopa 2w CHR 1,3 0t0 4293 /dev/null <<<<
find 14152 sergiopa 3r DIR 252,3 4096 16777344 /home/sergiopa/Downloads
find 14152 sergiopa 4r DIR 252,3 4096 16777344 /home/sergiopa/Downloads
find 14152 sergiopa 5r DIR 252,1 4096 4808 /usr/src/linux-headers-2.6.35-22/drivers/rapidio
sergiopa@sergiopa:~/Downloads$
Посмотрите строки с' <<<<', это - STDIN, STDOUT и STDERR. Закрытый оболочка, но находка все еще работает.
init
когда Вы выходите из системы на Linux, по моему опыту, это - функция удара, не обязательно для защиты сигналов зависания какnohup
делает. – Sergio 14.03.2012, 01:14job.sh
очевидно, делает что-то сложное. Я предлагаю, чтобы Вы восстановили свой тест с основным сценарием какwhile true; do sleep 1; done
. Это будет работать превосходное. – Patrick 14.03.2012, 05:52