我有几个 python 脚本,我从一个 shell 脚本开始,如下所示:
#!/bin/bash
python prog1.py &
python prog2.py &
python prog3.py
由于我正在开发,我经常想停止这些过程。我通常通过按 ctrl+C 来做到这一点,但不幸的是,一些 python 程序保持 (zeromq) 套接字打开。这意味着我必须手动找到它们(我使用lsof -i),并使用 PID 杀死它们。
所以我正在寻找一种更简单的方法,当我按下 ctrl+C 时,可以从 shell 中自动杀死那些 python 进程。在Stackoverflow 上的另一个线程上,我发现了一些应该可以满足我需要的代码。我只是不了解代码以及如何根据需要对其进行调整。
有人会这么好心来帮助我吗?
cat >work.py <<'EOF'
import sys, time, signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
for i in range(10):
time.sleep(1)
print "Tick from", sys.argv[1]
EOF
chmod +x work.py
function process {
python ./work.py $1
}
process one &
wait $!
echo "All done!"