【发布时间】:2021-07-22 15:26:52
【问题描述】:
我有一个简单的 shell 脚本,它执行以下操作:
#!/usr/bin/bash
while read line; do
*prints menu*
*process 1* (e.g. pid=500)
sleep 2
*process 2* (e.g. pid=502)
*while process 1 is active*; do
sleep 1
kill -9 502
在第一个 while 循环中,一切都在正确的地方进行,如果 process 1 在 process 2 之前终止,那么它就会被杀死。问题出在第二个循环以后:当第 i 个循环开始时,它总是打印如下内容:
script.sh: line "n": 502 Killed ( python3 program_name argv[1] ecc...)
有人知道如何避免这种打印吗?该脚本应该可以工作(我检查了ps -a,当 pid 500 死亡时,pid 502 立即被杀死)但是那个打印并不优雅。
【问题讨论】:
-
在脚本中使用
kill -9是非常糟糕的风格。 -
如何运行脚本?状态应该只在交互式 shell 中报告,所以我怀疑你正在做类似
. ./script.sh而不是bash script.sh。