方法重启死亡过程

时间:2017-06-12 18:55:21

标签: python linux

有一个名为logivew的应用程序,我正在编写一个要监视的脚本以及其他一些任务。在主while循环中(当我最关心的应用程序关闭时将退出),我检查logview是否需要重新启动。我目前的代码大致如下:

--private

但是,如果我测试杀死logview,条件触发,我确实看到了打印的消息,但后来我再次看到它,并再次看到它。如果logview确实死了,那么条件似乎会触发循环的每次迭代。并且,它永远不会正确重新启动。

很清楚......我做错了什么。 =)

非常感谢任何帮助(或更好的方法!)。

1 个答案:

答案 0 :(得分:1)

我不知道你的logview程序,但问题在于:

logview_cli_list = [logview]
logview_cli_list.extend(logview_process.args)

当您创建参数列表时,您在命令中放置logview两次,因为logview_process.args还包含已启动命令的名称,因此程序可能因为错误而立即失败args,并一次又一次地运行......

这个问题很明显:

logview_cli_list = logview_process.args

如果设置了给定标志并在开始时设置标志,则更好的解决方法是在循环中创建进程。 当进程死亡时,设置标志以再次触发进程创建。本来可以避免这个副本/几乎粘贴错误。