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存储卡,

Linux centos6 配置为系统服务且开机自启动 linux服务设置开机启动_nginx

每次使用改SD卡的使用需要手动挂载一下,很不方便。

Linux centos6 配置为系统服务且开机自启动 linux服务设置开机启动_重启_02


使用命令启动

Linux centos6 配置为系统服务且开机自启动 linux服务设置开机启动_nginx_03


需要输入账号的密码进行挂载处理

创建启动文件

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

系统测试