如何测试 ubuntu 的 UPSTART 功能以查看我的脚本在被杀死时自动重新启动?

ars*_*nal 4 linux ubuntu python upstart

我正在使用 Ubuntu 的 upstart 功能运行我的 Python 脚本,这样如果我的 Python 脚本由于某种原因死亡或被杀死,它可以自动重新启动。

所以我决定使用 Ubuntu 的 UPSTART 特性来自动重启 Python 脚本。

在像这样创建 testing.conf 文件之后/etc/init/testing.conf-

chdir /tekooz
exec python testing.py
respawn
Run Code Online (Sandbox Code Playgroud)

我在 sudo 命令下运行以启动它,我可以看到该进程正在运行,ps ax并且我的 python 脚本也运行良好。

root@bx13:/tekooz# sudo start testing
testing start/running, process 27794
Run Code Online (Sandbox Code Playgroud)

这是我下面的python脚本-

#!/usr/bin/python
import time

while True:
    print "Hello World"
    time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

但是我如何测试它以查看我的 Python 脚本是否被杀死,然后它会自动重新启动?我不能杀死PID的PID不断,如果我做的改变ps ax对我的testing.py

谁能告诉我如何测试这个场景?我只是想确保我的脚本在被杀死或死亡时可以自动重新启动。

Zel*_*lda 6

赶紧跑:

sudo status testing
Run Code Online (Sandbox Code Playgroud)

这为您提供了正在运行的 upstart 服务的状态。

而随着tail -f /var/log/syslog你可以看到,如果它是重生。

“Hello World”是我认为无处可去。

我建议测试:

#!/usr/bin/python
import time
import os

with open('/var/tmp/testing.log', 'a') as fp:
    try:
        while True:
            print >> fp, "Hello World", os.getpid()
            fp.flush()
            time.sleep(5)
    except Exception as e:
        print >> fp, 'exception', e
        fp.flush()
        raise
Run Code Online (Sandbox Code Playgroud)

tail -f /var/tmp/testing.log在另一个窗口中运行。