一、系统服务的方式

1. 前提

(1)首先要将需要自启的软件或应用注册成系统服务,下面提供常用的软件注册系统服务的案例

  • nginx.service

创建服务文件

vi  /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/sbin/nginx -s reload
ExecStop=/usr/local/sbin/nginx -s stop
ExecQuit=/usr/local/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target
  • redis.service

创建服务文件

vi  /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis6.2.5
After=network.target[Service]
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecReload=kill -s HUP $MAINPID
ExecStop=kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
  • nacos.service(这种是基于shell脚本执行的案例,需要将你的执行脚本授予执行权限,如:chmod +x /usr/local/nacos/bin/startup.sh)

创建服务文件

vi  /usr/lib/systemd/system/nacos.service
[Unit]
Description=nacos-server-2.0.3
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true[Install]
WantedBy=multi-user.target
  • 其他的脚本类型的可以参考nacos 那种方式,先创建启动应用和停止应用的脚本,再给脚本授权执行权,最后创建服务

服务的文件存放在  /usr/lib/systemd/system 如下:

/usr/lib/systemd/system/nacos.service

/usr/lib/systemd/system/nginx.service

/usr/lib/systemd/system/redis.service

2. 配置描述

Description           -描述服务 
After                       -描述服务类别 
[Service]                -服务运行参数的设置 
Type=forking         -是后台运行的形式 
ExecStart               -为服务的具体运行命令 
ExecReload           -为重启命令 
ExecStop               -为停止命令 
PrivateTmp=True  - 表示给服务分配独立的临时空间 
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 
[Install]                   -运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

3. 全部命令

 #重载服务单元
systemctl daemon-reload  #启动redis服务
systemctl start redis.service #设置开机自启动 systemctl enable redis.service#停止开机自启动
systemctl disable redis.service #查看服务当前状态
systemctl status redis.service #重新启动服务
systemctl restart redis.service  #查看所有已启动的服务
systemctl list-units --type=service

二、 系统自带启动

1. 写好自己应用的启动脚本,例如:

# 创建脚本
vi  /home/myShell/startup.sh

添加脚本内容

#!/bin/bash# 后台启动java应用
nohup java -Dserver.port=8858 -jar /usr/local/sentinel/sentinel-dashboard-1.8.2.jar >> logs/start.log 2>&1 &

授执行权限

chmod +x /home/myShell/startup.sh

2. 添加自启

编辑自启的系统文件

# /etc/rc.d/rc.local 这个文件是系统自带的启动文件
vi  /etc/rc.d/rc.local

添加下面我们要自启的脚本

/home/myShell/startup.sh

3. 在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限

chmod +x /etc/rc.d/rc.local

三、利用系统 /etc/rc.d/init.d 自启

1. 创建自己的脚本 (参考方式二的第一点创建脚本)

2. 将执行的脚本放在到/etc/rc.d/init.d目录下

3. 添加脚本到开机自动启动项目中

# 切换到这个目录下
cd /etc/rc.d/init.d# 添加我们的脚本
chkconfig --add startup.sh# 设置自启执行
chkconfig startup.sh on

注意:所有需要执行的文件都需要授予执行权限

授权命令: chmod  +x  [脚本的绝对路径]

Centos7 设置开机自启的几种方式相关推荐

  1. linux系统中开机自启的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0- ...

  2. Linux开机自启的三种方式

    1.在/etc/rc.local文件中添加自启动命令 ​​​​​​​2.在/etc/init.d目录下添加自启动脚本 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把 ...

  3. CentOS7设置静态ip地址的两种方式

    一.修改配置文件 网卡配置文件目录在:/etc/syconfg/network-scripts中 进入网卡配置目录,由于我的是虚拟机,所以网卡名字为ens33 vim命令编辑ens33文件,修改ipa ...

  4. 使用VS2017将我的c++项目打包成安装程序,并设置开机自启,卸载,图标等

    大体上打包分为两步 目录 一.将编译后的exe可执行文件及其各种依赖dll.lib.图标.配置文件等先打包放到一个目录中 (1)dumpbin指令查看可执行文件的dll依赖包 (2)windeploy ...

  5. Linux安装redis并设置开机自启以及利用小红桶连接(命令行方式)

    1. 安装 首先在/usr/local目录下创建redis目录,然后进入到该目录下: mkdir /usr/local/rediscd /usr/local/redis 进入redis目录后,执行下面 ...

  6. Ubuntu20.04设置开机自启脚本、开机自启命令(ubuntu自启,ubuntu开机自启)rc(run command)(systemd)(/etc/rc.local)(开机启动原理)开机自启动

    注意:ubuntu18.04也适用! 文章目录 Linux/Ubuntu开机启动原理 Linux的开机启动顺序 Ubuntu 20.04 设置开机自启脚本 使用 rc-local.service 1. ...

  7. Ubuntu 20.04 设置开机自启脚本

    Linux的开机启动顺序 要想整明白后面的开机启动的设置方法,最好不要只知其然而不知其所以然,这里要先从Linux的开机启动顺序开始说起. 下面介绍三种添加开机自启脚本的方法,所测试的系统为 Ubun ...

  8. centos7设置开机启动

    centos7设置开机启动 systemctl命令列出所有服务 一.systemctl CentOS7开始使得以往老版本系统服务的/etc/init.d的启动脚本的方式就此改变,在CentOS7中所有 ...

  9. windows中如何设置开机自启tomcat,nginx,jdk等应用服务的解决办法

    下面使用tomcat为例 一般手动启动tomcat的话,需要找到startup.bat双击启动.所以下面先找到此程序. 找到tomcat的安装目录,点击bin文件夹进入 然后找到startup.bat ...

最新文章

  1. js解析json字符串数组
  2. memcache的深度解析(转)
  3. 知云文献翻译_工具推荐 | 知云学术翻译,让外文文献阅读不再难
  4. 带哨兵节点的链_BNC公链 | IPFS:区块链“不可能三角”的可能解
  5. ADO.NET_05_OracleDataReader
  6. Android Studio导入so文件到项目中
  7. v-if与v-show
  8. js 日期操作 (转载:http://blog.sina.com.cn/s/blog_699d2e170101q6iz.html)
  9. fiddler软件抓包工具超详细配置方法
  10. docker 停止、启动、删除镜像指令操作总结
  11. 多个excel工作簿合并_如何使用Excel VBA将多个工作簿的全部工作表合并到一个工作簿中...
  12. steam服务器连接不稳定WIN10,小编操作win10系统steam连接不稳的解决步骤
  13. 每一篇博文都是与自己的一次对话
  14. 力扣刷题 DAY_76 贪心
  15. 涉密台式计算机密码可以输入几次,涉密打印机、扫描仪等与涉密计算机之间不采用无线方式连接 - 作业在线问答...
  16. 2022年Spark基础学习笔记
  17. 戴尔sc系列存储阵列柜服务器,入门级SCv2000!戴尔扩大存储产品组合
  18. UDDI和WSDL的关系
  19. 页面加载时间过长的解决
  20. Windows查看WiFi密码的命令

热门文章

  1. MyBatis基础篇
  2. C语言 输入三个字符串,由小到大输出
  3. 俄罗斯“扎克伯格”:创建区块链版“微信” 27岁身价已达2.5亿美元
  4. RK3568烧录系统
  5. 北航计算机学院王华峰,计算机前沿科学与技术分论坛第二场宣讲会
  6. app ui设计规范
  7. c# 的取负数_关于C#:如何对负数*向下*进行整数除法?
  8. Qiskit中的barrier()是干啥的
  9. 爆改YOLOV7的detect.py制作成API接口供其他python程序调用(超低延时)
  10. STM32 SPI NSS大揭秘