我有一个python脚本,该脚本在后台运行,并且正在使用看门狗和os。有没有办法强制退出这种脚本?我已经尝试按其他讨论中的建议按ctrl + x
或ctrl + z
,这对我不起作用。
如果您将运行命令jobs
您将看到类似这样的内容
[1] + suspended python .....
然后您可以运行kill %<job-number>
您将看到:
[1] + 43347 killed vim python ...
如果您在命令行末尾使用&
将进程发送到后台,则可以使用fg
将其带回到前台。一旦回到前台,您可以使用Ctrl+C
test.py
:
from time import sleep
n = 0
while True:
sleep(1)
n += 1
print(n)
示例输出:
$ python3 -q test.py &
[1] 82675
$ 1
2
3
4
fg
5
6
^CTraceback (most recent call last):
File "test.py", line 6, in <module>
sleep(1)
KeyboardInterrupt
这与您启动脚本的外壳相同。在另一个外壳中,可以使用ps
查找进程ID(PID),然后使用kill -9 <PID>
删除它。顺便说一句,上面示例中的第一条输出线告诉您PID(在这种情况下为82675
)。
假设您在命令行中没有其他包含脚本名称的进程,您甚至可以执行此操作(替换test.py
:]
$ kill -9 $(ps | fgrep test.py | fgrep -v fgrep | cut -d' ' -f1)