【发布时间】:2016-11-30 14:22:18
【问题描述】:
我想要一个从 systemd 服务启动的 python 脚本来输出音频。
我有一个从模板启动 systemd 服务的 udev 规则。然后模板启动一个带有两个参数(--device 和设备路径)的 python 脚本
multiupload@.service 文件:
[Unit]
Description=Mutiupload start service routine
[Service]
Type=oneshot
ExecStart=/path/to/script.py --device %I
[Install]
WantedBy=multi-user.target
在 python 脚本中,我使用音频文件调用 cvlc、mpg123 或 ffplay 来输出音频:
# cvlc does not like to be run as root
#audio_args = ["cvlc", "--play-and-exit", "/dir/to/audio/file"]
#mpg123 shits its pants when doing this
#audio_args = ["mpg123", "/dir/to/audio/file"]
#ffplay blacks out my screen? also no output
#audio_args = ["ffplay", "-autoexit", "/dir/to/audio/file"]
subprocess.call(audio_args)
所有这些在登录会话的终端执行时都可以正常工作,但在通过 systemd 服务调用时不输出音频。
我可以通过 systemd 服务调用我的 python 脚本输出什么?或者这是设计上不可能的(系统服务不应该以这种方式与用户会话交互?)?
也许 Mopidy 会起作用,但我想使用尽可能少的组件...
感谢所有想法!
【问题讨论】:
标签: python linux python-3.x systemd