【问题标题】:terminating python2 script & service with CTRL+Z使用 CTRL+Z 终止 python2 脚本和服务
【发布时间】:2019-12-09 12:18:03
【问题描述】:

目前,每当我在给定的冗长脚本上按 CTRL + Z 时,它会立即终止脚本 ([1+]stopped(SIGTSTP) ./test.py) 这是我想要的,但它也会留下 @987654325 @ process running(当我键入 ps 查看进程时),这迫使我使用killall -9 python2,我不想每次都这样做。有没有办法立即终止不让 python2 进程在后台运行的脚本?

我看到的代码中目前没有SIGTSTP,但我确实尝试使用以下代码但没有成功。当我按下CTRL + Z时,它甚至没有退出脚本。

def handler(signum, frame):
    sys.exit("CTRL+Z pressed. Exiting Test")

signal.signal(signal.SIGTSTP, handler)

【问题讨论】:

    标签: python python-2.7 process


    【解决方案1】:

    SIGSTP 是一个suspend进程的信号,听起来你想终止一个进程。您可以尝试发送 Ctrl-C 或 CTRL-D 代替,这应该发送一个 SIGINT 信号。

    我相信您也可以尝试发送 SIGQUIT 的 CTRL-\。

    【讨论】:

    • CTRL + D 在脚本中什么也没做。 CTRL + C 在我的屏幕上显示 ^C 但脚本继续运行。 CTRL + \ 似乎已经成功了。谢谢。
    【解决方案2】:

    使用Ctrl + CSIGTSTP 暂停进程,因此它保持打开状态,但不终止它。 (注意:在 Linux 终端上使用Ctrl + \,否则使用Ctrl + CCtrl + D

    或者直接使用sys.exit()

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多