Linux服务跟随启动,Linux—添加开机启动(服务/脚本)
系统启动时需要加载的配置文件
/etc/profile、/root/.bash_profile
/etc/bashrc、/root/.bashrc
/etc/profile.d/*.sh、/etc/profile.d/lang.sh
/etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local)
一、修改开机启动文件:/etc/rc.local(或者/etc/rc.d/rc.local)
# 1.编辑rc.local文件
[root@localhost~]# vi /etc/rc.local
#2.修改rc.local文件,在 exit 0前面加入以下命令。保存并退出。/etc/init.d/mysqld start # mysql开机启动/etc/init.d/nginx start # nginx开机启动
supervisord-c /etc/supervisor/supervisord.conf # supervisord开机启动/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null#3.最后修改rc.local文件的执行权限
[root@localhost~]# chmod +x /etc/rc.local
[root@localhost~]# chmod 755 /etc/rc.local
二、自己写一个shell脚本
将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。
三、通过chkconfig命令设置
# 1.将(脚本)启动文件移动到 /etc/init.d/或者/etc/rc.d/init.d/目录下。(前者是后者的软连接)mv /www/wwwroot/test.sh /etc/rc.d/init.d
#2.启动文件前面务必添加如下三行代码,否侧会提示chkconfig不支持。
#!/bin/sh告诉系统使用的shell,所以的shell脚本都是这样
#chkconfig:35 20 80分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#description: http server 自己随便发挥!!!,此行代码必须/bin/echo $(/bin/date +%F_%T) >> /tmp/test.log
#3.增加脚本的可执行权限chmod +x /etc/rc.d/init.d/test.sh#4.添加脚本到开机自动启动项目中。添加到chkconfig,开机自启动。
[root@localhost~]# cd /etc/rc.d/init.d
[root@localhost~]# chkconfig --add test.sh[root@localhost~]# chkconfig test.shon
#5.关闭开机启动
[root@localhost~]# chkconfig test.shoff
#6.从chkconfig管理中删除test.sh
[root@localhost~]# chkconfig --del test.sh#7.查看chkconfig管理
[root@localhost~]# chkconfig --list test.sh
四、自定义服务文件,添加到系统服务,通过Systemctl管理
1.写服务文件:如nginx.service、redis.service、supervisord.service
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 为服务的具体运行命令
ExecReload 为服务的重启命令
ExecStop 为服务的停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install] 服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target
2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system。如上面的supervisord.service文件放在这个目录下面。
[root@localhost ~]# cat /usr/lib/systemd/system/nginx.service
[root@localhost~]# cat /usr/lib/systemd/system/supervisord.service
3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload
设置开机自启动
[root@localhost~]# systemctl enable nginx.service
[root@localhost~]# systemctl enable supervisord
停止开机自启动
[root@localhost~]# systemctl disable nginx.service
[root@localhost~]# systemctl disable supervisord
验证一下是否为开机启动
[root@localhost ~]# systemctl is-enabled nginx
[root@localhost ~]# systemctl is-enabled supervisord
4.其他命令
启动nginx服务
[root@localhost~]# systemctl start nginx.service
停止nginx服务
[root@localhost~]# systemctl start nginx.service
重启nginx服务
[root@localhost~]# systemctl restart nginx.service
查看nginx服务当前状态
[root@localhost~]# systemctl status nginx.service
查看所有已启动的服务
[root@localhost~]# systemctl list-units --type=service
5.服务文件示例:
# supervisord.service进程管理服务文件
[Unit]
Description=Process Monitoring and Control Daemon # 内容自己定义:Description=Supervisor daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop= /usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
Restart=on-failure
RestartSec=42s
KillMode=process
[Install]
WantedBy=multi-user.target
# nginx.service服务文件
[Unit]
Description=nginx -high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
# redis.service服务文件
[Unit]
Description=Redis
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=kill -INT `cat /tmp/redis.pid`
User=www
Group=www
[Install]
WantedBy=multi-user.target
Linux服务跟随启动,Linux—添加开机启动(服务/脚本)相关推荐
- linux启动设置运行级别,Linux的运行级别和设置开机启动服务的方式
Linux的运行级别 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找 ...
- linux 添加开机启动项的三种方法。
原文地址: https://blog.csdn.net/lylload/article/details/79488968 Shell环境变量配置文件:https://blog.csdn.net/yzs ...
- 【linux 】添加开机启动项的方法|Linux目录结构和存放哪些文件
目录 linux 添加开机启动项的方法 编辑文件 /etc/rc.local 在/etc/init.d目录下添加自启动脚本 每次登录自动执行 通过chkconfig命令设置 把脚本注册为系统服务 在c ...
- linux 添加开机启动项的三种方法
linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...
- Linux 添加开机启动项的三种方法
linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...
- win8手动添加linux启动项,Win8下添加开机启动项的简单办法
Win8的用户越来越多,大家会发现任务管理器新添加了一个"启动"的功能,我们可以在其中随意删减开机启动项,以达到提高开机效率的目的.但是怎样才能添加我们平时经常用到的软件作为开机启 ...
- CentOS 7添加开机启动服务/脚本
CentOS 7添加开机启动服务/脚本 一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins. ...
- Linux下设置mysql和tomcat开机启动
本文基于CentOS 64位 一.mysql设置开机启动 1.cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 将服 ...
- ubuntu 设置开机启动与关闭开机启动(适用于部分linux系统)
ubuntu 设置开机启动与关闭开机启动 首先,以apache开机启动的关闭为例, 参见:http://blog.csdn.net/lyhdream/article/details/8897618 然 ...
- 【centos7】添加开机启动服务/脚本
2019独角兽企业重金招聘Python工程师标准>>> 一.添加开机自启服务 在centos7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl ...
最新文章
- android base layout - top middle bottom
- 热传的职场异性相处PPT!网友评:你倒是给我分配个女同事啊!
- delphi中的提前声明
- [Training Video - 1] [Selenium Basics] [Download and Install Selenium]
- 关于java static 关键字
- 微信小程序怎么取mysql_微信小程序如何加载数据库真实数据?
- HDU 1492 The number of divisors(约数) about Humble Numbers
- ioca0中断 pic单片机_关于PIC单片机的模块和功能总结
- 查找某节点的所有祖先☆
- spring boot入门学习---热部署
- Java基础学习总结(132)——Java8 Stream流操作学习总结
- Jenkins插件开发(四)-- 插件发布
- 填坑帖 By cellur925
- Android开发笔记(六)可变字符串
- Linux执行U盘里内程序,Linux 最小系统挂载U盘(SD、TF卡)并执行程序
- stm32 Invalid Rom Table 至芯片锁死解决方案
- 电容式液晶屏可实现多点触控
- Android 后台保活,这里有你需要的所有姿势。2019,最新版本。
- python是什么?能干什么
- tvOS游戏开发系列(SpriteKit)之准备工作(一)