我在脚本中运行了一系列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中的所有安静选项
答案 0 :(得分:1)
这些消息不是来自killall
命令。当它注意到其背景子进程之一已经死亡时,它们会来自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
的子进程。)