Linux的.service服务 实现程序开机自启
创始人
2024-06-03 17:04:50
0

一、.service文件的位置

所有可用的单元文件存放在 /lib/systemd/system/ 和 /etc/systemd/system/ 目录。

我们需要在/lib/systemd/system/ 下存放.service文件,当systemctl enable @@@.service 设置了自启动后,会自动在 /etc/systemd/system/ 下创建一个软链接指向 /lib/systemd/system/ 下的文件。

通过服务状态可以查看启动服务的.service配置文件

例如:

service mysql status

可以看到:

 mysql.service - MySQL ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since 一 2023-03-13 17:24:06 UTC; 22h agoProcess: 1783 ExecStart=/opt/mysql/mysql_ctl.sh start (code=exited, status=0/SUCCESS)Main PID: 1799 (mysqld_safe)

二、.service的内容

  .service 文件通常包含3个模块:

[Unit]     控制单元,表示启动顺序和依赖关系。[Service]  服务,表示服务的定义。[Install]  安装,表示如何安装配置文件。

例如:MySQL开机自启服务

[Unit]
Description=MySQL Daemon Service (服务描述)
After=network-online.target (服务依赖,再这些服务后启动本服务)
Before=nss-lookup.target (服务依赖,再这些服务前启动本服务)
Wants=network-online.target nss-lookup.target (与当前服务配合的其他服务,如果它们没有运行,当前服务不会启动失败)[Service]
Type=simple (默认值,systemd认为该服务将立即启动)
ExecStart=/opt/mysql/bin/MySQL_Service (启动当前服务的命令)
ExecStop=/bin/kill -SIGINT $MAINPID (停止当前服务时执行的命令)
Restart=on-failure (定义何种情况 Systemd 会自动重启当前服务,当前是仅在服务进程异常退出时重启)
RestartSec=3s (自动重启当前服务间隔的秒数)
User=root (设置进程在执行时使用的用户,当前是root)[Install]
WantedBy=multi-user.target (表示该服务所在的服务组,当前是服务所在的服务组是multi-user.target)

PS:要注意的是ExecStart指定的是一个阻塞的程序,不需要后台执行,如果不阻塞,服务会认为程序执行完了,认为服务不在启动状态。

三、设置服务开机自启

1、将.service文件放到/lib/systemd/system/后,使用systemctl enable mysql.service命令用于设置开机自启服务

2、验证手动启、开机自启

使用systemctl start mysql.service命令,启动mysql服务,此时可以查看MySQL_Service有没有在后台运行:ps -aux | grep MySQl_Service

如果程序能后台启动了,那么就可以重启系统检验一下程序有没有开机自启。

四、service相关命令

systemctl start 服务名            开启服务

systemctl stop 服务名            关闭服务

systemctl status 服务名     显示状态

systemctl restart 服务名     重启服务

systemctl enable 服务名     开机启动服务

systemctl disable 服务名     禁止开机启动

systemctl daemon-reload 修改服务配置文件后需要重新加载服务

systemctl is-enabled 服务名 查询是否自启动服务

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
带头循环双向链表来咯!!! 前言:继上文,我们了解了结构最简单的一种链表---单链表那么我们今天就来...