如果我跑def dialogOpen(self):
sub = subDialog()
if sub.exec_():
check = str(sub.checkbox.isChecked())
spin = str(sub.spinbox.value())
self.label1.setText('spinbox value is ' + spin)
self.label2.setText('Checkbox is ' + check)
一切正常;
如果我通过systemd服务运行它,脚本将不会被执行。
脚本内容:
/home/pi/update.sh
这里是Systemd config:下面的代码中是否有任何错误?
/home/pi/update.sh
#!/bin/sh
script='/opt/server/htdocs/due.py'
/usr/bin/python $script &
此状态:
/lib/systemd/system/httpdevice.service
/etc/systemd/system/multi-user.target.wants/httpdevice.service
[Unit]
Description=httpdevice-service
[Service]
Type=simple
User=pi
ExecStart=/home/pi/update.sh
[Install]
WantedBy=multi-user.target
答案 0 :(得分:0)
这里的问题是Type=simple
。你的服务肯定开始了,然后退出。但是,您可能会被子Python进程误导。子进程不是“简单”服务的一部分。
只有ExecStart=/opt/bin/python opt/server/htdocs/due.py
并跳过整个脚本可能更简单。