杀死Bash脚本中的所有静默进程

杀死Bash脚本中的所有静默进程,bash,kill,kill-process,Bash,Kill,Kill Process,我在一个脚本中运行了一系列phantomjs的静默实例,当脚本结束时,我想一次杀死它们。但是,为了使脚本看起来更漂亮,并且不使屏幕上出现此消息 ./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_CO

我在一个脚本中运行了一系列phantomjs的静默实例,当脚本结束时,我想一次杀死它们。但是,为了使脚本看起来更漂亮,并且不使屏幕上出现此消息

./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中的所有安静选项。这些消息不是来自
killall
命令。当shell注意到它的一个后台子进程已经死亡时,它们来自shell

您可以通过在子shell中运行命令来防止这种情况:

(phantomjs Lib/loadtester/runTests $TEST_COUNT $CLIENT_LIMIT $ACTION $PROFILE $TEST_SERVER $TEST_INCREMENT $DEBUG_MODE > "/tmp/"$TEST_COUNT"_log.txt" &)
后台进程现在是子shell的子进程,而不是原始脚本shell,因此脚本shell在死亡时不会得到通知。(实际上,由于子shell在创建后台进程后立即退出,因此后台进程成为
init
的子进程)