CentOS7服务程序设置开机启动

CentOS 7中设置服务程序开机启动,常用如下两种方式。

1、方式一

通过/etc/rc.local配置系统启动时运行自定义脚本,在文件尾行增加需启动命令(如下以自启java程序和挂载数据盘为例)。

# 设置开机自动挂载nas存储(sleep 10,为了确保外部就绪,避免失败)
mkdir /nas/ >/dev/null 2>&1
sleep 10 & mount -t nfs -o rw,vers=3 foo.bar.com:/storage_dir /nas

# 设置开机启动java服务(-Dspring.profiles.active=sth为启动参数示例,非必须)
sleep 10 && cd /java-artifact-path && source /etc/profile && nohup java -Dspring.profiles.active=sth -jar foo-bar.jar >out.log 2>&1 &

2、方式二

配置系统后台服务(通常标识为daemon,缩写d,表示伺服程序,如下以nginx为例)。

1)创建配置文件

/etc/systemd/system/目录下新增文件 nginx.service

[Unit]
Description=nginx service
After=network.target

[Service]
User=root
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx             # 置换为nginx实际目录
ExecReload=/usr/local/nginx/sbin/nginx -s reload  # 置换为nginx实际目录
ExecStop=/usr/local/nginx/sbin/nginx -s stop      # 置换为nginx实际目录
ExecStartPre=/bin/sleep 10

[Install]
WantedBy=multi-user.target

**备注:**系统内建服务配置通常放在目录/usr/lib/systemd/system,而自定义服务通常放在目录/etc/systemd/system。systemd加载服务配置时,会优先查找/etc/systemd/system目录,即,如两个目录有同名服务,自定义服务配置会覆盖了系统服务配置。

2)启动服务

# 在启动服务之前,需要先重载systemctl命令
systemctl daemon-reload
# 启动服务
systemctl start nginx.service
# 设置开机自启
systemctl enable nginx

3)常用管理命令

  • 重载systemctl命令:systemctl daemon-reload
  • 启动服务:systemctl start nginx
  • 关闭服务:systemctl stop nginx
  • 重启服务:systemctl restart nginx
  • 设置开机启动:systemctl enable nginx

3、systemctl配置文件举例

  • 复杂版nginx配置举例

    [Unit]                                                          #对服务的说明
    Description=nginx - high performance web server                 #描述服务
    After=network.target remote-fs.target nss-lookup.target         #描述服务类别
    
    [Service]                                                       #服务的一些具体运行参数的设置
    Type=forking                                                    #后台运行的形式
    PIDFile=/usr/local/nginx/logs/nginx.pid                         #PID文件的路径
    ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf     #启动准备
    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                                        #停止命令
    ExecQuit=/usr/local/nginx/sbin/nginx -s quit                                        #快速停止
    PrivateTmp=true                                                                     #给服务分配临时空间
    
    [Install]
    WantedBy=multi-user.target                                                          #服务用户的模式
    
  • java服务配置举例

    [Unit]
    Description=Your Java Service
    After=network.target
     
    [Service]
    Type=simple
    User=<username>
    ExecStart=/usr/bin/java -jar /path/to/your-application.jar -Dspring.profiles.active=production
    Restart=on-failure
     
    [Install]
    WantedBy=multi-user.target
    

4、参考


2024/4/19 v1.0

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值