Python脚本仅在作为服务运行时才会失败

我有一个我写的python脚本。 当我运行./myscript.py并且没有错误时,它完全按照预期工作,继续工作几天,直到我手动closures。

我还创build了一个为我的python脚本编写的SystemD服务。 但是,在运行服务时,会在每一轮中途出错。 SystemD重新启动脚本,它完美的工作1轮和一半的错误。

这是来自journalctl -xe -f的错误:

Jul 05 16:04:35 glas-dev systemd[1]: magewelk.service: Start operation timed out. Terminating. Jul 05 16:04:35 glas-dev magewelk.py[9685]: Jul 05 16:04:35 glas-dev systemd[1]: magewelk.service: Main process exited, code=dumped, status=3/QUIT Jul 05 16:04:35 glas-dev systemd[1]: Failed to start Data collector Magewell to Elasticsearch. -- Subject: Unit magewelk.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd- devel -- -- Unit magewelk.service has failed. -- -- The result is failed. Jul 05 16:04:35 glas-dev systemd[1]: magewelk.service: Unit entered failed state. Jul 05 16:04:35 glas-dev systemd[1]: magewelk.service: Failed with result 'core-dump'. Jul 05 16:04:35 glas-dev systemd[1]: magewelk.service: Service hold- off time over, scheduling restart. Jul 05 16:04:35 glas-dev systemd[1]: Stopped Data collector Magewell to Elasticsearch. -- Subject: Unit magewelk.service has finished shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd- devel -- -- Unit magewelk.service has finished shutting down. Jul 05 16:04:35 glas-dev systemd[1]: Starting Data collector Magewell to Elasticsearch... -- Subject: Unit magewelk.service has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd- devel -- -- Unit magewelk.service has begun starting up. 

magewelk.service文件如下所示:

 [Unit] Description=Data collector Magewell to Elasticsearch After=syslog.target [Service] WorkingDirectory=/opt/labglas_streamer ExecStartPre=/bin/bash -c 'chown -R charter:www-data /opt/labglas_streamer' ExecStart=/opt/labglas_streamer/magewelk.py Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target 

该脚本是单线程错误捕获。 我没有从脚本中得到任何错误。

这是在Ubuntu 16.04.2 LTS服务器上。 当服务崩溃,networking连接,处理器,以及没有看到任何突出的东西时,我已经观看了内存。

你可能想要“简单”的types,而不是“通知”。 通知只适用于你的Python脚本知道如何通知systemd。