Problem with systemd starting watchdog
Solution 1
This is a known Debian bug. The systemd integration of the Debian watchdog package has gone through several rounds, varying quite wildly. The watchdog package that went out as Debian 8 was actually non-functional, as you have discovered. That wasn't picked up by pre-release testing.
The bug has been fixed for version 5.15-1 of the package, alongside another fix that corrects faulty service unit syntax (also visible in your service unit). This version is not available in Debian 8 backports, although two requests have been made (and apparently ignored) for it to be.
Further reading
- Paul Menzel (2016-09-19). Syntax error in systemd service file. Bug #838305. Debian bug tracker.
- Uwe Storbeck (2014-11-05). watchdog does not start at boot. Bug #768168. Debian bug tracker.
- Andreas Steinel (2015-07-22). Not starting automatically on freshly installed Jessie. Bug #793309. Debian bug tracker.
- Michael Meskes (2016-02-26). Accepted watchdog 5.15-1 (source amd64) into unstable. debian-devel-changes.
Solution 2
For armbian, you can install updated package manually:
wget http://ftp.debian.org/debian/pool/main/w/watchdog/watchdog_5.15-2_armhf.deb
dpkg -i watchdog_5.15-2_armhf.deb
systemctl enable watchdog
Related videos on Youtube
Milliways
Updated on September 18, 2022Comments
-
Milliways over 1 year
I am trying to enable the
watchdog
service (on Raspbian Jessie).I have installed
watchdog
and (hopefully) configured it.sudo systemctl start watchdog
seems to start it OKsystemctl status watchdog.service
shows it running:-● watchdog.service - watchdog daemon Loaded: loaded (/lib/systemd/system/watchdog.service; static) Active: active (running) since Mon 2017-02-20 15:52:46 AEDT; 22s ago Process: 1828 ExecStart=/bin/sh -c [ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options (code=exited, status=0/SUCCESS) Process: 1824 ExecStartPre=/bin/sh -c [ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module (code=exited, status=0/SUCCESS) Main PID: 1831 (watchdog) CGroup: /system.slice/watchdog.service └─1831 /usr/sbin/watchdog
When I try to enable it with
sudo systemctl enable watchdog
I get this strange outputSynchronizing state for watchdog.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d watchdog defaults Executing /usr/sbin/update-rc.d watchdog enable The unit files have no [Install] section. They are not meant to be enabled using systemctl. Possible reasons for having this kind of units are: 1) A unit may be statically enabled by being symlinked from another unit's .wants/ or .requires/ directory. 2) A unit's purpose may be to act as a helper for some other unit which has a requirement dependency on it. 3) A unit may be started when needed via activation (socket, path, timer, D-Bus, udev, scripted systemctl call, ...).
Trying
sudo update-rc.d watchdog enable
did not seem to be successful either systemctl list-units | grep watchdogcat /lib/systemd/system/watchdog.service
indeed has no [Install] section[Unit] Description=watchdog daemon Conflicts=wd_keepalive.service After=multi-user.target OnFailure=wd_keepalive.service [Service] Type=forking EnvironmentFile=/etc/default/watchdog ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module ExecStart=/bin/sh -c '[ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options' ExecStopPost=/bin/sh -c '[ $run_wd_keepalive != 1 ] || false' [Install]
How can I debug this, and get watchdog to run on boot
I added the following to
/lib/systemd/system/watchdog.service
[Install] WantedBy=multi-user.target
watchdog
now starts. I will need to test to ensure that it works! -
Paul over 6 yearsCould you please tell what should do I, the ordinary user of OSMC on Raspberry Pi 3, to make watchdog work and start automatically? Writing/not writing to /dev/watchdog works. Fine that you provided some links where are some informations, but I do not know what to do with them.