linux设置开启启动服务

方法一:编辑/etc/rc.local,添加开机启动运行命令;

直接编辑/etc/rc.local文件,文件内容最底下添加启动命令

复制代码
[root@hello ~]# vi /etc/rc.local 
# 最后追加内容,根据实际情况修改
/usr/sbin/nginx -c /etc/nginx/nginx.conf &

方法二: 使用注册系统服务(systemctl)(推荐):

1. 知识扩展

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分:

复制代码
  /usr/lib/systemd/system (系统服务,开机不需要登录就能运行)
  /usr/lib/systemd/user (用户服务,需要登录后才能运行)

/usr/lib/systemd/system 和 /etc/systemd/system的区别:

复制代码
  对于那些支持 Systemd(YUM/DNF/RPM/APT/etc) 的软件,安装的时候,会自动在 /usr/lib/systemd/system 目录添加一个配置文件。
  对于非软件包形式的临时软件安装,系统操作员应将文件手动放置在 /etc/systemd/system

注意: 设置开机自启动脚本可以在/etc/systemd/system或者/usr/lib/systemd/system目录下配置,当两个地方都配置了的情况下,/etc/systemd/system配置优先。

3.每一个服务以.service结尾,一般会分为3部分:UnitServiceInstallUnit 主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别。 Service 是服务的关键,是服务的一些具体运行参数的设置,

复制代码
Type=forking是后台运行的形式
PIDFile 为存放PID的文件路径
ExecStart 为服务的具体运行命令
ExecReload 为重启命令
ExecStop 为停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
  1. 以nginx为例: 新建nginx服务文件

    vim /etc/systemd/system/nginx.service

文件内容如下:

复制代码
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/tengine/sbin/nginx    #修改为自己系统对应的路径
ExecReload=/usr/local/tengine/sbin/nginx -s reload #修改为自己系统对应的路径
ExecStop=/usr/local/tengine/sbin/nginx -s quit    #修改为自己系统对应的路径
PrivateTmp=true
[Install]
WantedBy=multi-user.target
  1. 设置开机自动启动 systemctl enable nginx.service

    systemctl start nginx.service #开启
    systemctl stop nginx.service #关闭
    systemctl reload nginx.service #重新加载配置
    systemctl status nginx.service #查看状态

以下是普通java后台注册系统服务文件:

复制代码
[Unit]
Description=Java daemon demo
After=syslog.target network.target

[Service]
User=huangjf
Group=huangjf
Type=simple
WorkingDirectory=/opt/perfree/
ExecStart=/usr/bin/java -jar perfree-web.jar
ExecStop=/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

修改后重新加载服务文件:

复制代码
systemctl daemon-reload
相关推荐
不会就选b几秒前
linux之进程管理(二)--替换
linux·运维·服务器
倔强的石头1066 分钟前
【Linux指南】动静态库系列(二):从源码复用到目标文件复用:为什么需要把 .o 打包成库
linux·运维·服务器
码农学院12 分钟前
GEO与SEO协同:从传统搜索到生成式搜索的平滑迁移路径
服务器·前端·python
步步精BBJconn15 分钟前
从GPU服务器到数据中心:AI服务器高压连接器的应用与发展趋势
大数据·运维·服务器·人工智能·科技·物联网
码农学院2 小时前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
爱写代码的森9 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
大耳朵-小飞象11 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技12 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
HLC++12 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室13 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设