背景
通过systemd创建服务实现启机喂狗操作,OK1046A-C2中看门狗的设备结点为dev/watchdog 设备文件,启动watchdog后,如果不喂狗,10秒后系统复位。
1、启动看门狗,此命令会打开看门狗并执行喂狗操作,因此系统不会重启。
root@localhost:~# watchdog
使用ctrl+c结束测试程序时,10s后系统会复位,如不想复位请在ctrl+c之后10s内输入#watchdog
-d 关闭看门狗。
2、执行命令 watchdogrestart,此命令会打开看门狗,但不执行喂狗操作,系统会在10s后重启。
root@localhost:~# watchdogrestar
3、创建服务
在/etc/systemd/system/路径下创建mywatchdog.service,内容如下所示:
root@localhost:~# vi /etc/systemd/system/mywatchdog.service
[Unit]
Description = dunp_forlinx
After=network.target
[Service]
ExecStart = /usr/bin/watchdog
Type = simple
[Install]
WantedBy = multi-user.target
保存退出后,将服务设置为开机自启
root@localhost:~# systemctl -f enable /lib/systemd/system/mywatchdog.service
4、 service段type值含义
Type:定义启动时的进程行为,它有以下几种值:
Type=simple:默认值,执行ExecStart指定的命令,启动主进程
Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
Type=dbus:当前服务通过D-Bus启动
Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
Type=idle:若有其他任务执行完毕,当前服务才会运行