centos7 添加自启
方法一:通过脚本设置
1)
chmod +x /etc/rc.d/rc.local
- 在 /etc/rc.d/rc.local 中 添加需要自启的软件的启动命令,如:
/usr/local/tomcat8/bin/startup.sh // 执行 tomcat 启动命令
方法二:通过配置系统服务来设置自启动
在CentOS 7中, 一些软件程序会在安装时自动创建服务, 比如Apache, PHP, MySQL, Nginx等等,
对于已经创建好的服务, 我们唯一要做的就是把服务设置成自启动就可以了,如:
systemctl enable mysqld // mysql服务自启
systemctl status mysqld // 查看服务状态
systemctl disable mysqld // 取消自启
自己创建服务.
CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.
CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类
[Service]部分是服务的关键,是服务的一些具体运行参数的设置.
Type=forking是后台运行的形式,
User=users是设置服务运行的用户,
Group=users是设置服务运行的用户组,
PIDFile为存放PID的文件路径,
ExecStart为服务的具体运行命令,
ExecReload为重启命令,
ExecStop为停止命令,
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
[Install]部分是服务安装的相关设置,可设置为多用户的
例如我们创建一个名为nginx.service的服务
#vim /usr/lib/systemd/system/nginx.service
[UNIT]
#服务描述
Description=Media wanager Service
#指定了在systemd在执行完那些target之后再启动该服务
After=network.target
[Service]
#定义Service的运行类型,一般是forking(后台运行)
Type=forking
#定义systemctl start|stop|reload *.service 的执行方法(具体命令需要写绝对路径)
#注:ExecStartPre为启动前执行的命令
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s stop
#创建私有的内存临时空间
PrivateTmp=True
[Install]
#多用户
WantedBy=multi-user.target
再 添加 可执行 权限
chmod 754 /usr/lib/systemd/system/nginx.service
常用命令:
systemctl list-units --type=service // 查看服务列表状态
systemctl list-unit-files // 列出所有已经安装的 服务 及 状态 (可为人所读, 内容简略、清晰)
systemctl // 可以列出正在运行的服务状态,如图:(基本不为人所读, 内容复杂、全面)
systemd-cgls // 以树形列出正在运行的进程,它可以递归显示控制组内容
systemctl start xxx.service // 启动一个服务
systemctl stop xxx.service // 关闭一个服务
systemctl restart xxx.service // 重启一个服务
systemctl status xxx.service // 查看服务状态
systemctl is-enabled xxx.service // 查看服务是否开机启动
systemctl list-unit-files | grep enabled // 查看已启动的服务列表
systemctl --failed // 查看启动失败的服务列表
原文地址:https://www.cnblogs.com/zhanglw456/p/12966931.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原理+代码|Python实战多元线性回归模型
- nestjs+vue+ts打造一个酷炫的星空聊天室(含完整数据库设计)
- JUnit 5基础指南
- 记录一则expdp任务异常处理案例
- Jenkins打造多分支流水线指南
- Spring中的设计模式
- java单元/集成测试中使用Testcontainers
- AOP编程简介及其在Spring框架中的使用
- 使用Maven Archetype创建Java项目模板
- left join左表一定是驱动表吗?
- OneFlow快速上手教程
- [译]HAL-超文本应用语言
- OneFlow | 新深度学习框架后浪(附源代码)
- 居民身份证阅读器产品开发学习心得(再谈标准-软件-协议)
- Spring Data REST不完全指南(一)