如何使用 systemd 文件实现自启动

使用 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.
相关推荐
憧憬一下1 小时前
Linux内核早期打印机制与RS485通信技术
arm开发·嵌入式硬件·嵌入式·linux驱动开发
杨德杰1 天前
开源ISP介绍(1)——开源ISP的Vivado框架搭建
图像处理·fpga开发·嵌入式·isp·vitis
路人甲ing..2 天前
树莓派明明安装了opencv和numpy,却找不到
人工智能·opencv·numpy·树莓派·安装包
路人甲ing..2 天前
在树莓派上使用自带的摄像头采集视频
python·opencv·树莓派·摄像头·微处理器
沅_Yuan2 天前
蓝桥杯嵌入式入门指南-RTC【8】
蓝桥杯·嵌入式·keil·rtc·cubmx
feitingfj2 天前
debian 11 虚拟机环境搭建过坑记录
linux·debian·嵌入式
xm一点不soso3 天前
小车AI视觉交互--2.颜色跟随
人工智能·计算机视觉·交互·树莓派·视觉小车
fzm52983 天前
汽车软件单元测试的重要性
自动化测试·软件测试·单元测试·汽车·嵌入式·白盒测试
Bowen_CV3 天前
智能产品综合开发 - 智能家居(智能语音机器人)
人工智能·python·机器人·智能家居·树莓派