我有一个想要作为守护进程运行的Python脚本。我通过创建一个单元文件/etc/systemd/system/service来做到这一点
我想以systemctl start/stop/restart myservice的身份运行它
根据这个start stop参数,我可以处理像SIGUP、SIGINT这样的系统信号
问题是我可以像Python /stop/restart那样运行我的脚本,并且我的逻辑可以工作。
但是在转换成一个单元文件之后,这个python文件被ExecStart调用了,我不知道如何在那里传递参数?
[Unit]
Description=This service monitors docker daemon for events
After=multi-user.target
[Service]
Type=simple
ExecStart=/home/PycharmProjects/python_tests/service-discovery/utils/auto_registeration_script/main.py
User=root
WorkingDirectory=/home/PycharmProjects/python_tests/service-discovery/utils/auto_registeration_script/
Restart=on-failure
[Install]
WantedBy=multi-user.target发布于 2017-09-10 20:36:39
您实际上不是在运行"main.py start“和"main.py stop”吗?在这种情况下,您已经编写了一个"forking“服务。
[Unit]
Description=This service monitors docker daemon for events
After=multi-user.target
[Service]
Type=forking
Environment=script=/home/PycharmProjects/python_tests/service-discovery/utils/auto_registeration_script/main.py
ExecStart=$script start
ExecStop=$script stop
User=root
WorkingDirectory=/home/PycharmProjects/python_tests/service-discovery/utils/auto_registeration_script/
Restart=on-failure
[Install]
WantedBy=multi-user.targethttps://stackoverflow.com/questions/45741339
复制相似问题