千家信息网

Linux如何添加开机启动脚本

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章将为大家详细讲解有关Linux如何添加开机启动脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。系统启动时需要加载的配置文件/etc/profile、/ro
千家信息网最后更新 2025年01月26日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.sh on# 5.关闭开机启动 [root@localhost ~]# chkconfig test.sh off# 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 daemonAfter=rc-local.service nss-user-lookup.target[Service]Type=forkingExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.confExecStop= /usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reloadRestart=on-failureRestartSec=42sKillMode=process [Install]WantedBy=multi-user.target
# nginx.service服务文件[Unit]Description=nginx - high performance web serverAfter=network.target remote-fs.target nss-lookup.target[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s stop[Install]WantedBy=multi-user.target
# redis.service服务文件[Unit]Description=RedisAfter=network.target remote-fs.target nss-lookup.target[Service]Type=forkingExecStart=/usr/local/bin/redis-server /etc/redis.confExecStop=kill -INT `cat /tmp/redis.pid`User=wwwGroup=www[Install]WantedBy=multi-user.target

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

关于"Linux如何添加开机启动脚本"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

服务 文件 脚本 命令 目录 系统 运行 管理 代码 权限 篇文章 操作系统 优先权 内容 更多 用户 路径 支持 不错 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融信息基础数据库不采集 太原推广机器人rpa软件开发 北京潮流软件开发服务价格优惠 幼儿园教师国家网络安全工作心得 服务器压力测试工具安卓 国产大数据库有哪些 龙之谷2一个服务器多少人 中国移动招聘网络安全题 阿里云服务器控制台首页 怎么用数据库获取短信内容等 软件开发工程师如何考核 家用服务器有哪些系统 sql服务器叫什么名字 数据库字段对应 三级 网络技术编程考试 虹口区数据软件开发代理品牌 戴尔t130服务器超值低价 计算机网络技术基础课程总结 ny是软件开发的意思吗 厂站网络安全监测装置ii型 普陀区互联网软件开发咨询热线 什么专业学嵌入式软件开发 数据库安全管理设计 计算机应用软件开发论文 刚毕业当软件开发 数据库中隔离性怎么用代码 苏州工业软件开发大概要多少钱 新推出的即时通讯软件开发 维普数据库检索字 关系数据库模型的优缺
0