使用 systemd 文件实现自启动
在/etc/systemd/system/
目录下创建新.service文件:
bash
$ sudo touch /etc/systemd/system/vid_tcp.service
$ sudo chmod 777 /etc/systemd/system/vid_tcp.service
$ code /etc/systemd/system/vid_tcp.service
修改文件内容如下。ExeStart是需要执行的脚本
bash
[Unit]
Description=auto executing vid script
[Service]
ExeStart=/home/wc/send_g/vid_scripts/cam_tcp_stream.sh
Restart=always
[Install]
WantedBy=multi-user.target
而后使服务文件生效并启用:
bash
$ sudo systemctl daemon-reload
$ sudo systemctl enable vid_tcp.service
Created symlink /etc/systemd/system/multi-user.target.wants/vid_tcp.service → /etc/systemd/system/vid_tcp.service.
注意大小写,比如WantedBy写成wantedBy可能会在使能时报错:
bash
$ sudo systemctl enable vid_tcp.service
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
instance name specified.