CentOS7 的开机自启动systemctl
说明
centos7自启项已不用chkconfig改为:
systemctl list-unit-files
启停
systemctl enable redis
systemctl disable redis
分类
根据后缀名识别类型
1. .service - 定义系统服务的启动
2. .target定义了系统启动级别的标签, systemd没有运行级别的概念, 创建标签是为了兼容老版本
3. .socket定义了进程通用的套接字, 套接字和进程是分离的
4. .device 定义了系统启动时内核识别的文件, systemd提供了设备的管理功能, /dev下的设备由/etc/udev下的配置文件和.device共同定制
5. .mount 定义系统的fs挂载点
6. .snapshop 系统快照
7. .swap 用于识别swap设备
8. .automount 文件系统的自动挂载点
9. .path 用于定义fs中的一个文件或目录, 常用与fs发生变化时, 延迟激活服务
脚本
通常由3本分组成
[Unit]
[unit的类型: service target socket]
[install]
示例:
[Unit] Description=mongodb
After=network.target remote-fs.target nss-lookup.target [Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/mongodb.conf
PrivateTmp=true [Install]
WantedBy=multi-user.target
附录:
[Unit]区块字段描述
- Description:简短描述
- Documentation:文档地址
- Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
- Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
- BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
- Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
- After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
- Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
- Condition...:当前 Unit 运行必须满足的条件,否则不会运行
- Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败
[Service]区块字段描述
- Type:定义启动时的进程行为。它有以下几种值。
- Type=simple:默认值,执行ExecStart指定的命令,启动主进程
- Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
- Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
- Type=dbus:当前服务通过D-Bus启动
- Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
- Type=idle:若有其他任务执行完毕,当前服务才会运行
- ExecStart:启动当前服务的命令
- ExecStartPre:启动当前服务之前执行的命令
- ExecStartPost:启动当前服务之后执行的命令
- ExecReload:重启当前服务时执行的命令
- ExecStop:停止当前服务时执行的命令
- ExecStopPost:停止当其服务之后执行的命令
- RestartSec:自动重启当前服务间隔的秒数
- Restart:定义何种情况 Systemd 会自动重启当前服务
no(默认值): # 退出后无操作on-success: # 只有正常退出时(退出状态码为0),才会重启on-failure: # 非正常退出时,重启,包括被信号终止和超时等on-abnormal: # 只有被信号终止或超时,才会重启on-abort: # 只有在收到没有捕捉到的信号终止时,才会重启on-watchdog: # 超时退出时,才会重启always: # 不管什么退出原因,都会重启(除了systemctl stop)# 对于守护进程,推荐用on-failure
- KillMode的类型:
control-group(默认):# 当前控制组里的所有子进程,都会被杀掉process: # 只杀主进程mixed: # 主进程将收到SIGTERM信号,子进程收到SIGKILL信号none: # 没有进程会被杀掉,只是执行服务的stop命令
- TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数
- Environment:指定环境变量
[Install]字段描述
- WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中
- multi-user.target: # 表示多用户命令行状态,这个设置很重要
- graphical.target: # 表示图形用户状体,它依赖于multi-user.target
- RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中
- Alias:当前 Unit 可用于启动的别名
- Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit
命令
基础操作:systemctl start|stop|restart|status name.service
条件式重启:
即服务之前是启动的则进行重启,如果服务没有启动则不进行操作
systemctl try-restart name.service
重载或重启:
首先进行重载,如果重载不成功则进行重启
systemctl reload-or-restart name.service
重载或条件式重启:
systemctl reload-or-try-restart name.service
设置服务是否可以被用户设置开机启动状态
systemctl unmask name.service 取消禁止
systemctl mask name.service 禁止
查看服务的当前激活状态:
服务已经启动命令的状态返回值为0 命令未启动命令的状态返回值为非0值
systemctl is-active name.service
查看所有已经激活的服务:
-t 指定显示的unit类型。
-a 或 --all 显示更加详细的信息列表。
systemctl list-units
systemctl list-units -t service
systemctl list-units -t service -a
查看所有服务:
systemctl list-units -a
1
查看所有服务状态:
systemctl list-unit-files
-a 或--all : 查看所有服务的状态
-t 或--type :指定需要查看的unit类型
loaded :配置文件已经加载,载入内存
active(running):一次或多次持续处理的运行
active(exited):成功完成一次性的配置
active(waiting):运行中,等待一个事件
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
用来列出该服务在哪些运行级别下启用和禁用
ls /etc/systemd/system/*.wants/sshd.service
systemctl list-unit-files --type target --all
设置服务开机不启动:
systemctl disable 服务名称unit
查看服务是否开机自启:
systemctl is-enabled name.service
察看服务的依赖关系:
systemctl list-dependencies name.service
systemctl list-depebdencies
重载服务:
systemctl daemon-reload
杀掉进程:
systemctl kill 进程名
CentOS7 的开机自启动systemctl相关推荐
- centos7 添加开机自启动
方法一:修改 /etc/rc.d/rc.local 文件 linux的启动过程如下: /etc/rc.d/rc.local文件中写入了什么命令,在每次系统启动时都会执行一次,我们可以修改这个文件,来实 ...
- linux tomcat 配置启动命令,# linux 之 配置tomcat开机自启动(systemctl)
前言: systemctl命令是service和chkconfig命令的集合 service命令:用于启动.停止.重新启动和关闭系统服务,还可以显示所有系统服务的当前状态 chkconfig命令:用于 ...
- centos 开机启动java_java程序在centos7里面开机自启动
1.我们先来个简单的start,status,stop程序: [[email protected] ~]# cat /home/tomcat/jarservice.sh #!/bin/bash CU_ ...
- java程序在centos7里面开机自启动
1.我们先来个简单的start,status,stop程序: [root@localhost ~]# cat /home/tomcat/jarservice.sh #!/bin/bash CU_PID ...
- centos7.x设置nginx开机自启动
设置nginx开机自启动(centos7.x) 第一步:进入到/lib/systemd/system/目录 [root@iz2z init.d]# cd /lib/systemd/system/ 第二 ...
- Linux使用systemctl设置程序开机自启动
1 说明 设置开机自启动,需要用到systemctl工具. systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器. systemd是一个系统管理守护进程.工具和库的集 ...
- Linux服务器,服务管理--systemctl命令详解,设置开机自启动
Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...
- Linux如何设置开机自启动
文章结构 Linux 如何设置开机自启动 方式1:如果是 CentOS6 就用 chkconfig(推荐) 方式2:如果是 CentOS7 就用 systemctl(推荐) 常见服务的开机自启动脚本 ...
- Centos7 设置开机自启的几种方式
一.系统服务的方式 1. 前提 (1)首先要将需要自启的软件或应用注册成系统服务,下面提供常用的软件注册系统服务的案例 nginx.service 创建服务文件 vi /usr/lib/systemd ...
最新文章
- linux系统下添加新硬盘的方法详解
- webpack 项目使用 html-webpack-plugin(3)
- 哀悼!2007年图灵奖得主Edmund Clarke因感染新冠逝世
- BCH热门应用SLP发币系统逐渐走向成熟
- matlab画二维网格贴吧,Matlab二维网格划分—预告
- Leetcode 61 旋转链表 (每日一题 20210723)
- Error: ENOSPC: System limit for number of file watchers reached, watch'所在文件路径'
- 在/sys目录下建立一个文件,并且实现信息的读取和存储
- SecureCRT 6.7 vim高亮
- 北京内推 | 京东AI研究院计算机视觉实验室招聘三维视觉算法研究型实习生
- CSS UI状态伪类选择器
- mysql在线备份恢复--Xtrabackup
- 冒泡排序C语言(从小到大)
- 自底向上与自顶向下(递归与动态规划)
- bootstrap-table导出excel科学计数法bug,数字过长变成科学计数法
- SpringBoot整合Redis_Jedis版(二十)
- Docker redis cluster集群的搭建
- 如何做一份好的竞品分析:商业WIFI竞品分析让你不再跳坑
- Linux高性能集群(AMD处理器)Linpack测试方法
- Python3 遇到\\u开头的编码
热门文章
- vue怎么通过if跳出方法_vue多种弹框的弹出形式
- 怎样通过vb设置透视表多项选择_数据透视表,数据统计分析的利器,你会了吗...
- C语言程序设计复习指导
- html5操作类名API——classlist
- Memcached的安装与使用
- 有关LinkedList常用方法的源码解析
- 开启Python之路
- nginx轻松搭建自己的flv流媒体服务器
- 武汉大学 RSIDEA 团队开源LoveDA:可同时推进语义分割和迁移学习
- 除了“团队牛”还有“饭菜香”,百度 IDL 招聘算法实习生