[systemd-devel] systemd TimeoutStopSec not working
Andrei Borzenkov
arvidjaar at gmail.com
Sun Nov 10 06:51:03 UTC 2019
04.11.2019 17:59, mmbella пишет:
> Hello,
>
> I apologize if this is not the appropriate list serve to post in
> however, I am having problems with a systemd service file not
> terminating a python script that intermittently hangs. I have tried
> other forums with no solution. The service script is listed below along
> with journalctl output, timer listings and status reports. I am not
> getting a specific error I can act on.
>
> The actual python script works well for days then fails intermittently
> most likely due to a hung database connection. I am not asking for
> coding help with the python script only a solution to terminate the
> process if it hangs.
>
> It appears that TimeoutStopSec intermittently fails to terminate the
> process. Any suggestion would be appreciated.
>
> Thank you in advance.
>
> Marc
>
> -----------------
>
> NEXT LEFT LAST PASSED
> UNIT ACTIVATES
>
> Sun 2019-11-03 06:35:31 CST 6min left Sat 2019-11-02 06:05:22 CDT
> 1 day 1h ago apt-daily-upgrade.timer apt-daily-upgrade.service
> Sun 2019-11-03 10:12:19 CST 3h 43min left Sun 2019-11-03 04:20:18 CST
> 2h 8min ago apt-daily.timer apt-daily.service
> Sun 2019-11-03 20:23:41 CST 13h left Sat 2019-11-02 21:23:41 CDT
> 10h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
> Mon 2019-11-04 00:00:00 CST 17h left Sun 2019-11-03 00:00:00 CDT
> 7h ago logrotate.timer logrotate.service
> Mon 2019-11-04 00:00:00 CST 17h left Sun 2019-11-03 00:00:00 CDT
> 7h ago man-db.timer man-db.service
> n/a n/a Sat 2019-11-02 22:00:45 CDT
> 9h ago outside_air_temp_sensor.timer outside_air_temp_sensor.service
>
> 10 timers listed.
> Pass --all to see loaded but inactive timers, too.
> ● outside_air_temp_sensor.service - Winery Outside Air Temp Sensor
> Loaded: loaded (/etc/systemd/system/outside_air_temp_sensor.service;
> disabled; vendor preset: enabled)
> Active: activating (start) since Sat 2019-11-02 22:00:45 CDT; 9h ago
> Main PID: 5274 (outside_air_tem)
> Tasks: 1 (limit: 2200)
> Memory: 5.7M
> CGroup: /system.slice/outside_air_temp_sensor.service
> └─5274 /usr/bin/python3 /home/marc/scripts/outside_air_temp.py
>
> Nov 02 22:00:45 winerypi systemd[1]: Starting Winery Outside Air Temp
> Sensor...
> Nov 02 22:00:46 winerypi outside_air_temp.py[5274]: TERM environment
> variable not set.
> ● outside_air_temp_sensor.timer - "Run the outside air temp sensor
> script every few minutes and log data"
> Loaded: loaded (/etc/systemd/system/outside_air_temp_sensor.timer;
> enabled; vendor preset: enabled)
> Active: active (running) since Fri 2019-11-01 21:07:39 CDT; 1 day 10h
> ago
> Trigger: n/a
>
> Nov 01 21:07:39 winerypi systemd[1]: Started "Run the outside air temp
> sensor script every few minutes and log data".
> -- Logs begin at Fri 2019-11-01 21:07:35 CDT, end at Sun 2019-11-03
> 06:30:39 CST. --
> Nov 01 21:07:39 winerypi systemd[1]: Started "Run the outside air temp
> sensor script every few minutes and log data".
> -- Logs begin at Fri 2019-11-01 21:07:35 CDT, end at Sun 2019-11-03
> 06:30:45 CST. --
>
> Nov 02 20:31:37 winerypi systemd[1]: outside_air_temp_sensor.service:
> Succeeded.
> Nov 02 20:31:37 winerypi systemd[1]: Started Winery Outside Air Temp
> Sensor.
> Nov 02 21:00:27 winerypi systemd[1]: Starting Winery Outside Air Temp
> Sensor...
> Nov 02 21:00:27 winerypi outside_air_temp.py[5125]: TERM environment
> variable not set.
> Nov 02 21:00:38 winerypi systemd[1]: outside_air_temp_sensor.service:
> Succeeded.
> Nov 02 21:00:38 winerypi systemd[1]: Started Winery Outside Air Temp
> Sensor.
> Nov 02 21:30:00 winerypi systemd[1]: Starting Winery Outside Air Temp
> Sensor...
> Nov 02 21:30:00 winerypi outside_air_temp.py[5198]: TERM environment
> variable not set.
> Nov 02 21:30:11 winerypi systemd[1]: outside_air_temp_sensor.service:
> Succeeded.
> Nov 02 21:30:11 winerypi systemd[1]: Started Winery Outside Air Temp
> Sensor.
> Nov 02 22:00:45 winerypi systemd[1]: Starting Winery Outside Air Temp
> Sensor...
> Nov 02 22:00:46 winerypi outside_air_temp.py[5274]: TERM environment
> variable not set.
>
> ## SERVICE FILE
>
> [Unit]
> Description=Winery Outside Air Temp Sensor
>
> [Service]
> ExecStart=/home/marc/scripts/outside_air_temp.py
> Type=oneshot
> User=root
> Group=marc
> WorkingDirectory=/home/marc/scripts
> TimeoutStopSec=360
>
My understanding is that Type=oneshot services are never really stopped,
service is Activating until its ExecStart program finishes at which
point there is nothing to stop (unless you have ExecStopPost).
You are probably looking for TimeoutStartSec here.
> [Install]
> WantedBy=multi-user.target
>
> ## TIMER FILE
>
>
> [Unit]
> Description="Run the outside air temp sensor script every few minutes
> and log data"
>
> [Timer]
> OnCalendar=*:0,30
> RandomizedDelaySec=60
> Persistent=true
> Unit=outside_air_temp_sensor.service
>
> [Install]
> WantedBy=multi-user.target
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
More information about the systemd-devel
mailing list