我已经写了一个小脚本来启动程序并在程序退出时发送邮件:
#!/usr/bin/env python
# coding: utf8
import psutil
from email.mime.text import MIMEText
from subprocess import Popen, PIPE
import time
import os
program = "transmission-gtk"
if not program in [psutil.Process(i).name for i in psutil.get_pid_list()]:
try:
os.system(program)
text = "but it has been restarted"
except IOError as e:
text = "The restart failed!\n" + e
time.sleep(2)
msg = MIMEText("Transmission has been closed !!\n" + text)
msg["From"] = "adr@wmail.fr"
msg["To"] = "adr@wmail.fr"
msg["Subject"] = "subject"
p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
p.communicate(msg.as_string())
该脚本由cron每15分钟启动一次。 所有的作品,除了一件事:传输在脚本退出的同时退出 ......
我不想写一个永久性脚本(raspberry-pi),所以while
循环不是我想要的。
然后,如何启动我的程序?
答案 0 :(得分:1)
您可以使用os.system(program+'&')
来执行程序的执行。
此外,即使您的程序有效,您也应该查看subprocess
模块(打算替换os.system()
等)。