系统启动时需要加载的配置文件
/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 2 3 4 5 6 7 8 9 10 11 12 13
| [root@localhost ~]
/etc/init.d/mysqld start /etc/init.d/nginx start
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
|
- /etc/profile (或者 /etc/profile.d/)
二、自己写一个shell脚本
将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。
三、通过chkconfig命令设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| mv /www/wwwroot/test.sh /etc/rc.d/init.d
/bin/echo $(/bin/date +%F_%T) >> /tmp/test.log
chmod +x /etc/rc.d/init.d/test.sh
[root@localhost ~] [root@localhost ~] [root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
|
四、自定义服务文件,添加到系统服务,通过Systemctl管理
1.写服务文件:如nginx.service、redis.service、supervisord.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit]:服务的说明 Description:描述服务 After:描述服务类别
[Service]服务运行参数的设置 Type=forking 是后台运行的形式 ExecStart 为服务的具体运行命令 ExecReload 为服务的重启命令 ExecStop 为服务的停止命令 PrivateTmp=True 表示给服务分配独立的临时空间 注意:启动、重启、停止命令全部要求使用绝对路径
[Install] 服务安装的相关设置,可设置为多用户 WantedBy=multi-user.target
|
2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system。如上面的supervisord.service文件放在这个目录下面。
1 2
| [root@localhost ~] [root@localhost ~]
|
3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload
1 2 3 4 5 6 7
| 设置开机自启动 [root@localhost ~] [root@localhost ~]
停止开机自启动 [root@localhost ~] [root@localhost ~]
|
4.其他命令
1 2 3 4 5 6 7 8 9 10
| 启动nginx服务 [root@localhost ~] 停止nginx服务 [root@localhost ~] 重启nginx服务 [root@localhost ~] 查看nginx服务当前状态 [root@localhost ~] 查看所有已启动的服务 [root@localhost ~]
|
5.服务文件示例:
1 2 3 4 5 6 7 8 9 10
| Description=Process Monitoring and Control Daemon After=rc-local.service nss-user-lookup.target
[Service] Type=forking ExecStart=/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
|
1 2 3 4 5 6 7 8 9 10
| 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
|
1 2 3 4 5 6 7 8 9 10 11 12
| [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
|
https://www.cnblogs.com/zwcry/p/9602756.html
https://www.jianshu.com/p/e1442913eb0e