2014-06-19 2 views
0

Я запускаю серию скрытых экземпляров phantomjs в скрипте, когда скрипт заканчивается, я хочу убить их сразу. Однако, чтобы сделать сценарий хорошо выглядеть и не перегружать экран с этим сообщениемУбить все безмолвные процессы в скрипте Bash

./runTests.sh: line 74: 26002 Killed phantomjs Lib/loadtester/runTests.js $TEST_COUNT $CLIENT_LIMIT $ACTION $PROFILE $TEST_SERVER $TEST_INCREMENT $DEBUG_MODE > "/tmp/"$TEST_COUNT"_log.txt" 

Что такое лучший способ сделать это, я в настоящее время пытается:

(killall -9 phantomjs 2>&1) >/dev/null 

И попробовали почти все, я может подумать о включении всех тихих вариантов в killall

ответ

1

Эти сообщения не поступают из команды killall. Они поступают из оболочки, когда замечают, что один из его фоновых дочерних процессов умер.

Вы можете предотвратить это, запустив команды в субоболочке:

(phantomjs Lib/loadtester/runTests $TEST_COUNT $CLIENT_LIMIT $ACTION $PROFILE $TEST_SERVER $TEST_INCREMENT $DEBUG_MODE > "/tmp/"$TEST_COUNT"_log.txt" &) 

Фоновый процесс теперь ребенок подоболочки, а не оригинальный сценарий оболочки, поэтому сценарий оболочки не сообщается, когда он умирает , (На самом деле, поскольку подоболочка выходит сразу после создания фонового процесса, фоновый процесс становится дочерним элементом init.)

Смежные вопросы