我正在编写一个在 Ubuntu 上作为守护进程运行的简单 python 脚本。我已通过编写有效的 init.d 启动脚本成功安装并启动了它。
问题是,我可以(以及如何)从该守护进程调用另一个程序吗?
我试过了:
os.system("/bin/cp /tmp/somefileA /tmp/somefileB")
subprocess.call(["/bin/cp", "/tmp/somefileA", "/tmp/somefileB"])
# i'am not actually copying files, here i use cp for illustration because it doesn't involve stdin/stdout.
但是当脚本通过以下方式启动时,它们都不起作用(os.system
is returned256
和subprocess.call
is returned ):1
sudo service some_service start
但如果我从终端执行脚本,它就能正常工作。这是由某些安全策略引起的吗?谢谢。
答案1
您可以使用 init 脚本。在 /etc/init/example.conf 中
description "My app"
start on startup
stop on shutdown
respawn
respawn limit 60 10
exec sudo blablabla