首页
centos
常用命令linux_系统
Centos后台运行程序命令nohup
CentOS7启用阿里源yum安装Nginx
使用清华大学yum源
使用国内yum源
Linux script(录制) 命令
Linux内核参数中的配置项
Linux 系统生成或重置机器 ID
centos7系统安装
Centos7配置开机自启动脚本
CentOS忘记密码
Linux的服务、程序
系统优化+模板制作
CentOS设置环境变量
CentOS7的systemd
Linux常用命令记录
Centos 7查看系统最近一次启动时间和运行时间
Linux命令 之 watch命令
Centos7下date怎么英文格式输出
linux 使用 rz 和 sz 上传下载文件
Linux下的压缩/解压缩
常用命令linux_文本处理
计划任务crontab
CentOS7 SElinux和防火墙Firewall
Centos firewall-cmd配置软路由
CentOS7系统中使用iptables
iptables配置
iptables基础操作
使用iptables设置端口敲门(port knocking)后转发
Centos7 SSH登录日志分析
CentOS下查看tcp的网络连接状态数 netstat + awk
CentOS7上安装 Fail2Ban防SSH爆破
Fail2Ban开启邮件告警
LDAP
文件存储
ZFS
SSH
CentOS 7 SSH配置免密码登录
CentOS7开启SSH访问配置
删除ssh客户端记录的主机密钥标识(指纹)
sshd启动失败解决
添加用户,设置sudo权限
ssh公钥、机器指纹
ssh客户端提示:找不到对应主机密钥类型
shell脚本
示例:jumpserver一键安装脚本
centos中使用ping日志记录网络通断
盘符挂载硬盘导致重启系统失败
CentOS_网络
centos路由配置
Linux 系统添加永久静态路由
centos 添加删除路由
Linux下使用TC实现网络限流
linux系统下的wifi启动不了
hosts文件配置
网络端口
Centos 网卡命名规则
Centos命令行中nmtui调用图形界面设置网卡
查看CentOS网口的使用带宽
linux抓包工具tcpdump
定时备份删除文件
定时删除n日前的文件
备份指定目录下的文件
检查定时备份是否执行
inotify+rsync实时同步
rsync+lsync
CentOS7 使用SMTP发送邮件
Centos7部署开源SSH蜜罐cowrie
Centos7磁盘相关命令
centos 7 新增硬盘 分区并挂载
centos7加硬盘给根分区扩容--lvm模式
Linux中对lvm逻辑卷分区大小的调整(针对xfs与ext4不同文件系统)
CentOS7挂载4T磁盘
Centos7_NFS
CentOS7挂载samba共享文件夹
vsftpd主动模式和被动模式
CentOS清除旧硬盘格式
CentOS磁盘读写性能测试
硬盘IO查看分析工具iostat
Linux迁移home目录到根目录-需LVM分区
使用 smartctl 命令检查硬盘的状态
lsof列出正在使用某个文件夹
/dev/disk 目录
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
CentOS7的systemd
**简介** systemd 是一个守护进程,systemctl 是命令行管理工具:systemd 是用于管理 Linux 系统的初始化过程和后台服务的初始化系统,而 systemctl 则是用于与 systemd 交互的命令行工具。 systemctl命令:控制Linux系统上软件的启动、关闭、开启开机自启动和关闭开机自启动 系统内置的服务都可以被systemctl控制 第三方软件有注册服务的,也可以被systemctl控制,没有注册服务的不可以被systemctl控制 ## systemctl的语法: systemctl start | stop | status | enable |disable 服务名 start 启动 restart 重启 stop 关闭 status 查看当前运行状态 enable 设置为开机自启动 disable 关闭开机自启动 ## 查看服务是否开机自启 `systemctl is-enabled 服务名` 如果服务开机自启,则输出"enabled"; 如果没有开机自启,则输出"disabled"。 ## CentOS7编写systemd服务脚本 历史上,Linux 的启动一直采用init进程。Systemd 的出现缩短了启动时间,降低启动脚本复杂。根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。 在CentOS6中写服务脚本,需要放在/etc/init.d/目录下,且脚本编写较复杂在。而在CentOS7中写服务脚本,只需要按照格式编写即可。 **存放位置** /usr/lib/systemd/system #系统服务,开机不需要登录就能运行的程序(可以用于开机自启) /usr/lib/systemd/user #用户服务,需要登录后才能运行程序 使用 systemd-analyze verify xxxx.service 检查 service配置异常 设置开机启动 systemctl enable xxxx.service 添加或修改后需加载 `systemctl daemon-reload` 重新加载后才可以用systemctl启动新添加服务 例如:systemctl start prometheus **服务脚本编写** 服务脚本一般以xxx.service命名,且脚本中分为三部分:[Unit]、[Service]、[Install] 示例: ``` vim /usr/lib/systemd/system/xxx.service [Unit] # 主要是服务说明 Description=test # 简单描述服务 After=network.target # 描述服务类别,表示本服务需要在network服务启动后在启动 Before=xxx.service # 表示需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。 [Service] # 服务的关键 Type=forking # 表示后台运行模式。 PIDFile=/usr/local/test/test.pid # 存放PID的绝对路径 ExecStart=/usr/local/test/bin/startup.sh # 服务启动命令,命令需要绝对路径 ExecReload=xxx #为重启命令, ExecStop=xxx #为停止命令 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 ``` ### systemd 开机 挂载 NFS ``` cat << "EOF" > /usr/lib/systemd/system/mount_dsm.service [Unit] After=network.target [Service] Type=oneshot RemainAfterExit=true ExecStart=/usr/bin/mount -t nfs -o defaults 192.168.1.120:/volume1/mydsm /mnt Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target EOF ``` 更多请参考官方文档 参考链接: https://blog.csdn.net/yuanfangpoet/article/details/89410312 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html https://www.cnblogs.com/faberbeta/p/13477407.html
local
2023年9月28日 14:40
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码