linux操作系统中业务程序及服务的开机启动设置
- 1 背景
- 2 目标
- 3 启动类型
- 3.1 服务启动systemctl
- 3.2 服务启动chkconfig
- 3.2.1 查看服务
- 3.2.2 系统自带服务的设置
- 3.2.3 添加服务设置
- 3.3 开机启动脚本
1 背景
客户要求服务器进行阶段性重启操作,一下子忙坏了系统厂家,服务程序的手动启动和自启动的作用一下子发挥了不同的作用。
2 目标
将服务器上的中间件、数据库、业务程序设置为开机自启动,服务器重启后业务程序自启动。
3 启动类型
以下为三种设置自启动的方式,根据各自项目的业务需求进行对应的设置。
- 服务启动-systemctl
- 服务启动-chkconfig
- 脚本启动-rc.local
3.1 服务启动systemctl
设置成服务启动后可以直接使用系统命令对服务进行启停重启操作
编辑服务文件 ,以nginx为例进行展开介绍,如有nginx安装需求请移步《linux 系统下四种nginx安装方法》
系统服务目录:/usr/lib/systemd/system/
用户服务目录:/usr/lib/systemd/user/
根据业务需求选择设置服务的目录
vi /lib/systemd/system/nginx.service
输入配置信息,其他服务参考一下内容调整为自身软件的目录和程序即可
[Unit]
Description=nginx
After=network.target [Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true [Install]
WantedBy=multi-user.target
创建服务
systemctl enable nginx.service
系统操作命令
# 启动
systemctl start nginx
# 查询状态
systemctl stuas nginx
# 重启
systemctl restart nginx
# 停止
systemctl stop nginx
3.2 服务启动chkconfig
Linux chkconfig 命令用于检查,设置系统的各种服务。
这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。 面向的操作系统为 RedHat 和 CentOS操作系统
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数:
-
–add 增加所指定的系统服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
-
–del 删除所指定的系统服务,不再由 chkconfig 指令管理,并同时在系统启动的叙述文件内删除相关数据。
-
–level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关闭。
等级代号列表:
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
3.2.1 查看服务
chkconfig --list
3.2.2 系统自带服务的设置
开启服务
chkconfig telnet on //开启 Telnet 服务
关闭服务
chkconfig telnet off // 关闭 Telnet服务
3.2.3 添加服务设置
业务程序:jgxt_app
程序目录:/home/jgxt
启动脚本:start_jgxt.sh
将启动命令编辑放入到start_jgxt.sh
文件中
chmod +x start_jgxt.sh
cp start_jgxt.sh /etc/init.d/start_jgxt
chkconfig --add start_jgxt
chkconfig start_jgxt on
chkconfig --level start_jgxt 2345 on
chkconfig --list start_jgxt
3.3 开机启动脚本
以加载挂载盘为例
在linux服务上查了一块256G的SD存储卡,
每次使用改SD卡的使用需要手动挂载一下,很不方便。
使用命令启动
需要输入账号的密码进行挂载处理
创建启动文件
vim /home/fwmh/script/mount_d.sh
#!/bin/bash
echo xxxxx | sudo mount -t drvfs D://mnt/d
注:xxxxx为普通账号的密码
脚本启动
# 赋予rc.local文件可执行权限
sudo chmod +x /etc/rc.d/rc.local
# 执行脚本可执行权限
chmod +x /home/fwmh/script/mount_d.sh
将启动脚本追加入rc.local
文件
# 追加到文末
/home/fwmh/script/mount_d.sh
系统测试