Linux 使用systemd service 实现开机自启动

本文介绍了如何利用systemd在Linux系统中设置开机自动启动服务,强调了服务配置文件中不能使用相对路径,并提供了一个示例,展示了如何为/home/demo目录下的demo-web.war应用配置开机启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标

使用systemd实现开机启动某项服务

参考
How To Use Systemctl to Manage Systemd Services and Units | DigitalOcean

systemctl常用命令

启动或停止服务

systemctl start demo-start.service
systemctl stop demo-start.service

开启/关闭 开机自启动服务

systemctl enable demo-start.service
systemctl disable demo-start.service

 重新加载服务

systemctl daemon-reload

 查看服务状态

systemctl status demo-start.service

查看现有的service

ll /usr/lib/systemd/system/***.service
cd /etc/systemd/system/multi-user.target.wants/

注意: 使用systemctl 开机自启动的服务不能包含相对路径。 如java web项目的配置文件, log 文件等, 都需要指定绝对路径, 不能使用相对路径

例子:使用Linux系统开机自启动/home/demo目录下的服务 demo-web.war

/home/demo 目录下有如下文件

  • demo-web.war
  • application.properties
  • start.sh
  • demo-start.services

start.sh

#! /bin/sh
nohup java -jar -Dspring.config.location=/home/demo/application.properties /home/demo/demo-web.war & echo $! > /home/demo/piddemo.file

demo-start.service

[Unit]
Description=start demo web

[Service]
Type=forking
ExecStart=/bin/bash /home/demo/start.sh

[Install]
WantedBy=multi-user.target

使用systemd实现开机自启动demo-web.war

sudo cp /home/demo/demo-start.service /etc/systemd/system
sudo systemctl enable demo-start.service
sudo systemctl daemon-reload

测试:重启Linux服务器,查看demo-web.war服务是否启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值