当前位置: 首页 > news >正文

系统开机时自动执行指令

使用 systemd 创建一个服务单元可以让系统开机时自动执行指令,假设需要执行的指令如下,运行可执行文件(/home/demo/可执行文件),并输入参数(–input=/home/config/demo.yaml):

/home/demo/可执行文件 --input=/home/config/demo.yaml

✅ 推荐方法:使用 systemd

1. 创建服务文件

以 root 权限创建一个新的服务文件,例如:

sudo nano /etc/systemd/system/demo.service
2. 编写服务内容

将以下内容粘贴进去(根据你的实际路径和用户名修改):

[Unit]
Description=demo
After=network.target[Service]
ExecStart=/usr/bin/taskset -c 0/home/demo/可执行文件 --input=/home/config/demo.yaml
Restart=always
User=yourusername
Environment="DISPLAY=:0"
StandardOutput=syslog
StandardError=syslog[Install]
WantedBy=multi-user.target

⚠️ 注意:

  • yourusername 替换为你运行这个程序的实际用户。
  • 如果程序需要图形界面或访问 X11,请确保 Environment="DISPLAY=:0" 正确。
  • 如果不需要 taskset,可以直接写成 ExecStart=/home/cpp/build/tennis_line --input=/home/config/lines.yaml
  • 一般情况下只需要更改ExecStartUser
配置项含义
DescriptionTennis Line Detection Service服务名称描述
Afternetwork.target在网络就绪后启动
ExecStarttaskset -c 0 …实际执行的命令
Restartalways出现任何退出都重启
Useryourusername指定运行服务的用户
EnvironmentDISPLAY=:0设置环境变量,用于图形界面,指定显示器
StandardOutputsyslog标准输出记录到 syslog
StandardErrorsyslog错误输出也记录到 syslog
WantedBymulti-user.target在多用户模式下启动
3. 重新加载 systemd 配置
sudo systemctl daemon-reload
4. 启用服务开机自启
sudo systemctl enable tennis-line.service
5. 可选:立即启动服务
sudo systemctl start tennis-line.service
6. 查看日志确认是否运行正常
journalctl -u tennis-line.service

禁用开机自启

  1. 禁用服务

    使用 systemctl disable 命令可以禁用指定的服务,使其不会在系统启动时自动启动。

    sudo systemctl disable demo.service
    

    这个命令会移除 /etc/systemd/system/multi-user.target.wants/ 目录下的相应符号链接(如果存在),从而达到禁止该服务随系统启动而启动的目的。

  2. 停止正在运行的服务(可选)

    如果这个服务当前正在运行,并且想停止它,可以使用 systemctl stop 命令:

    sudo systemctl stop demo.service
    
  3. 确认服务已被禁用

    可以通过查询服务的状态来确认它是否已经被正确禁用。禁用后,服务将不会随着系统的启动而自动启动,但仍然可以通过手动启动来运行。

    sudo systemctl demo.service
    

    在输出中,会看到类似“Loaded: loaded (…) disabled;”的信息,表示该服务已禁用。

删除服务文件(可选)

如果确定以后完全不需要这个服务了,也可以考虑删除相应的服务单元文件。请谨慎操作,因为这将永久删除该服务的所有配置。

sudo rm /etc/systemd/system/tennis-line.service

之后,别忘了重新加载 systemd 配置,以便更改生效:

sudo systemctl daemon-reload

完成以上步骤后, demo.service 就不会再在系统启动时自动启动了。

http://www.lryc.cn/news/607646.html

相关文章:

  • 基于python大数据的招聘数据可视化及推荐系统
  • 算法思想之 多源 BFS 问题
  • 【Node.js安装注意事项】-安装路径不能有空格
  • PNP机器人机器人学术年会展示灵巧手动作捕捉方案。
  • MySQL分析步
  • Android签名轮转
  • Conda install安装了一些库,如何撤销操作
  • 第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2022年3月13日真题
  • 外卖“0元购”退场后,即时零售大战才刚开始
  • CORS模块:你的跨域快速通行证 [特殊字符]
  • 【C语言入门级教学】字符指针变量
  • Java 23 新特性解析与代码示例
  • 嵌入式学习日志————TIM输入捕获
  • EasyGBS的两种录像回看
  • 抢占先机,PostgreSQL 中级专家认证的职业跃迁
  • 学习:入门uniapp Vue3组合式API版本(17)
  • Linux文件系统:从内核到缓冲区的奥秘
  • 如何创建一个飞书应用获取自己的飞书AppID和AppSecret?
  • 力扣面试150题--数字范围按位与
  • QPS 与 TPS 的详细解释及核心区别
  • gdrcopy 原理、安装与示例
  • 国内短剧CPS系统开发:技术架构与商业化实践
  • 将 YOLOv11 的 .pt 模型转换为 YOLOv8 格式需要特定的处理流程 机器学习 计算机视觉cv
  • 【数据分享】中国27省乡镇(街道)级人口密度数据集(2000年)
  • 【Open3D】基础操作之三维变换
  • 【数据分享】南海综合波浪数据(1945-2018 年)(获取方式看文末)
  • Servlet作用域,监听器,JSP九大内置对象
  • python基础语法4,函数(简单易上手的python语法教学)课后习题
  • WooCommerce 与 ERP 系统集成解决方案
  • ai项目多智能体