Я пишу простой сценарий Python, которые работают как демон на Ubuntu. Я успешно установил и запустил его путем записи, что допустимый init.d запускает сценарий.
Вопрос, могу я (и как может I) вызывать другую программу от того процесса демона?
Я попробовал:
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
возвращается 256
и subprocess.call
возвращается 1
) когда сценарий запускается:
sudo service some_service start
Но если я выполняю сценарий от терминала, он работает хорошо. Это вызывается некоторой политикой безопасности?Спасибо.
Можно использовать init сценарии. В/etc/init/example.conf
description "My app"
start on startup
stop on shutdown
respawn
respawn limit 60 10
exec sudo blablabla