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

创建一个开机自启的服务

bg: Linux server存在关机重启,问题,那么后台运行的命令就需要重启后手动运行。

nohup /path/find_data_loop_in2m.sh > /dev/null 2>&1 &

那么如何让它开机就启动呢?

#创建一个开机自启的服务
touch find_data_change_log_loop.service
vim find_data_change_log_loop.service
i #编辑
#把下面代码贴到文件中
[Unit]
Description=Find Data Change Log Loop Service
After=network.target[Service]
Type=simple
User=root
# 启动命令,直接去执行你的 nohup 脚本
semanage fcontext -a -t bin_t "/usr/local/docker/autosrc/script/find_data_change_log_loop_in2m.sh"
restorecon -v /usr/local/docker/autosrc/script/find_data_change_log_loop_in2m.sh
# 进程挂了自动重启
Restart=always
RestartSec=3
# 日志输出路径(你可以改成你喜欢的)
StandardOutput=journal
StandardError=journal[Install]
WantedBy=multi-user.targetesc #退出insert
:wq! #保存
cat /etc/systemd/system/find_data_change_log_loop.service #查看内容是否保存成功

创建ok后执行如下脚本,看下 SELinux 状态:

getenforce

如果是 Enforcing,很多时候 systemd 服务跑用户脚本会被拦。可以试着先关掉测试:

setenforce 0

只需要第一次执行

semanage fcontext -a -t bin_t "/path/find_data_change_log_loop_in2m.sh"
restorecon -v /path/find_data_change_log_loop_in2m.sh

如果以后脚本路径或者权限变动了,可以再跑一遍。

然后重启电脑服务
 

setenforce 1 #恢复
systemctl daemon-reload
systemctl restart find_data_change_log_loop #替换为创建的service文件名
systemctl status find_data_change_log_loop

最后结果可以看到service在running, 表示成功!

● find_data_change_log_loop.service - Find Data Change Log Loop Service
   Loaded: loaded (/etc/systemd/system/find_data_change_log_loop.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2025-04-23 01:15:03 CST; 4s ago
 Main PID: 14133 (find_data_chang)
    Tasks: 2 (limit: 26213)
   Memory: 1.1M
   CGroup: /system.slice/find_data_change_log_loop.service
           ├─14133 /bin/bash /usr/local/docker/autosrc/script/find_data_change_log_loop_in2m.sh
           └─14136 sleep 120

检查下运行的这些进场是不是都在跑

[root@localhost logs]# ps -aux | grep find_data_change_log_loop
root     11167  0.0  0.0 201796 11964 pts/1    T    00:33   0:00 sudo systemctl status find_data_change_log_loop
root     11169  0.0  0.0  86128  7836 pts/1    T    00:33   0:00 systemctl status find_data_change_log_loop
root     11929  0.0  0.0  94204  6972 pts/1    T    00:50   0:00 journalctl -u find_data_change_log_loop -f
root     14133  0.0  0.0  12720  3072 ?        Ss   01:15   0:00 /bin/bash /usr/local/docker/autosrc/script/find_data_change_log_loop_in2m.sh
root     14150  0.0  0.0  12264  2364 pts/1    S+   01:15   0:00 grep --color=auto find_data_change_log_loop


journalctl -u find_data_change_log_loop -f #要是以后想查这个 service 的日志:

all good to complete this service.

http://www.xdnf.cn/news/179677.html

相关文章:

  • 题海拾贝:P2858 [USACO06FEB] Treats for the Cows G/S
  • 大模型图像编辑那家强?
  • 多模态常见面试题
  • 新魔百和CM311-5_CH/YST/ZG代工_GK6323V100C_2+8G蓝牙版_强刷卡刷固件包(可救砖)
  • SpringMVC 前后端数据交互 中文乱码
  • 【深度剖析】贵州茅台的数字化转型(2025)(上篇)
  • 第7章 内部类与异常类
  • 【蓝桥杯省赛真题57】Scratch穿越病毒区 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解
  • Vue.js 核心特性解析:响应式原理与组合式API实践
  • 论文检索相关网站
  • ‌RISC-V架构的低功耗MCU多电压域优化设计
  • final static 中是什么final static联合使用呢
  • 【算法刷题】
  • MySQL 8.0 忘记登录密码 mysqld --init-file重置
  • AG32 MCU系列三合一芯片,MCU+ 2K cpld + 64Mbit PSRAM,一颗芯片同时满足多种需求。
  • 清华团队提出时序聚类数据库内高效方案,已被SIGMOD 2025接收
  • 【Tools】chezmoi 跨多台不同的机器管理 dotfiles 的工具
  • 缓存并发更新的挑战
  • Python生活手册-元组:保险柜与瑞士军刀
  • 基于javaweb的SpringBoot新闻发布系统设计与实现(源码+文档+部署讲解)
  • 业务中台与数据中台:企业数字化转型的核心引擎
  • 解决qnn htp 后端不支持boolean 数据类型的方法。
  • C语言-- 深入理解指针(4)
  • 学习spark总结
  • 基于SSM的“融资租赁管理系统”的设计与实现(源码+数据库+文档)
  • QT开发技术【QChart添加跟随鼠标的十字线】
  • 信号量函数
  • MySQL快速入门篇---增删改查(下)
  • Neowise Labs Contest 1 (Codeforces Round 1018, Div. 1 + Div. 2)
  • HTML基础完全解析