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

Linux开机自启动systemd配置

为什么需要systemd

在 Linux 系统中,确保关键服务能够在系统启动时自动运行是一项非常重要的任务。尤其是在服务器环境中,我们希望一些服务(比如服务器上部署的java应用)能够在系统每次启动后自动启动,从而确保业务的持续运行。在 Linux 中,常用的服务管理系统有两种:systemdsysvinit。本篇文章摘自网络,只做个人笔记记录备忘。

systemd是 Linux 的一种系统和服务管理器,负责系统的引导过程,管理系统运行时的服务,并提供许多系统功能,如日志、时间同步等。它通过服务单元文件(通常为.service文件)来定义和管理服务,并提供强大的依赖管理和并行启动功能。

systemd 常用命令

(1)systemctl status <service-name>

可以使用systemctl status <service-name>来判断指定服务是否加入到systemd自启动。

(2)systemctl enable <service-name>

设置指定服务开启自启动

(3)启动服务

systemctl start <service_name>

(4)停止服务

systemctl stop<service_name>;注意不能用kill -9,自启动会将服务再次启动的

创建自定义的systemd服务

1 创建服务单元文件

systemd服务通过服务单元文件(.service文件)来管理。首先,你需要在/etc/systemd/system/或/usr/lib/systemd/system目录中创建一个新的服务文件。例如,创建一个名为myservice.service的文件

2 服务单元文件配置

[Unit] Description=My Custom Service After=network.target [Service] ExecStart=/path/to/your/program --argument Restart=always User=youruser Group=yourgroup [Install] WantedBy=multi-user.target

解释:

  • [Unit]:定义服务的描述和依赖。After=network.target表示该服务会在网络启动后启动。
  • [Service]:定义服务的启动命令、重启策略、运行用户等。ExecStart是服务启动时执行的命令。
  • [Install]:定义服务在哪个运行级别下启动。multi-user.target表示该服务将在多用户模式下启动。

比如一个java应用的配置如下:

[Unit] Description=template After=network.target [Service] Type=forking WorkingDirectory=/opt/myjava/ ExecStart=/opt/myjava/servicectl.sh start 2048m ExecReload=/opt/myjava/servicectl.sh restart 2048m ExecStop=/opt/myjava/servicectl.sh stop PrivateTmp=true Restart=on-failure [Install] WantedBy=multi-user.target

其中servicectl.sh是自定义的服务启动脚本
#!/bin/sh
./service.sh $1 `ls *.jar` $2

注意:这种写法当前目录只能有一个java的jar包。

3 重新加载systemd配置

执行systemctl daemon-reload 命令重新加载systemd配置。

参考:https://cloud.tencent.com/developer/article/2587808

http://www.jsqmd.com/news/221455/

相关文章:

  • Matlab实现粒子群优化算法求解含压缩储能设备的综合能源系统运行优化的结果及代码注释与参考文献
  • Redis 面试必看:内存淘汰策略解析
  • 深度测评!10个AI论文网站测评,本科生毕业论文必备
  • xTaskCreate实现多任务管理的操作指南
  • metalens 宽带消色差超构透镜模型 宽带消色差聚焦超构透镜,利用粒子群优化算法实现多个波...
  • [内网流媒体] 公司环境中哪些行为属于红线
  • 系统学习无源蜂鸣器驱动电路的设计思路与步骤
  • 展讯UMS618/610全网通量产资料 展讯 618/610全网通4G全套量产软硬件资料及原厂...
  • SMBus状态码说明:入门级错误处理指南
  • 全面讲解汽车电子中UDS 27服务的安全等级
  • 谷歌为Gmail搜索引入AI概览功能并推出实验性AI智能收件箱
  • 谷歌为Gmail搜索引入AI概览功能并推出实验性AI智能收件箱
  • [内网流媒体] 浏览器访问模式的安全优势
  • 一文带你快速了解MoE(混合专家模型)
  • 三菱PLC步进电机开闭环控制系统源码解析与实现
  • Python---pandas
  • 牛批了,AI办公神器,值得收藏
  • 零基础理解AUTOSAR模块间交互逻辑
  • display driver uninstaller清理AMD驱动的核心要点
  • DuRoBo Krono:搭载AI助手的智能手机尺寸电子阅读器
  • DuRoBo Krono:搭载AI助手的智能手机尺寸电子阅读器
  • pytorch深度学习笔记12
  • PDF编辑神器,免费国际版
  • T触发器时序行为深度剖析:建立与保持时间详解
  • DUT功能验证中的断言使用技巧:实战经验分享
  • 开发一款APP费用是多少?影响价格的几大核心因素
  • T触发器时序行为深度剖析:建立与保持时间详解
  • Elasticsearch资源隔离配置教程
  • 图解说明:PyTorch推荐系统中的Embedding层设计
  • 入驻爱发电