
CentOS7利用Systemd添加用户自定义系统服务
发布日期:2021-05-15 09:10:13
浏览次数:10
分类:精选文章
本文共 1501 字,大约阅读时间需要 5 分钟。
在CentOS7系统中,通过Systemd管理Java项目服务是一项非常实用的操作方法。下面将详细介绍如何配置一个自定义的Systemd服务。
一、创建服务文件
首先,进入 /usr/lib/systemd/system/
目录,创建一个名为 service-demo.service
的文件。文件内容如下:
[Unit]Description=我的示例服务After=network.target[Service]Type=forkingExecStart=/home/bee/apps/service-demo.sh startExecReload=/home/bee/apps/service-demo.sh restartExecStop=/home/bee/apps/service-demo.sh stopPrivateTmp=True[Install]WantedBy=multi-user.target
二、设置权限
为避免权限问题,对服务文件进行权限设置:
chmod 644 /usr/lib/systemd/system/service-demo.service
这将确保文件的读写权限仅限于拥有者和特定的用户组。
三、启用服务
使用以下命令启用服务,确保服务在开机时自动启动:
systemctl enable service-demo.service
这将创建一个符号链接,如:
Created symlink '/etc/systemd/system/multi-user.target.wants/service-demo.service' → '/usr/lib/systemd/system/service-demo.service'
四、启动、重启和停止服务
通过以下命令控制服务的运行:
启动:
systemctl start service-demo.service
停止:
systemctl stop service-demo.service
重启:
systemctl restart service-demo.service
检查状态:
systemctl status service-demo.service
五、可选配置(高级应用)
指定用户和组:
修改
[Service]
部分,添加User=youruser
和Group=yourgroup
,以指定运行时的用户和组。指定PID文件:
添加
PIDFile=/home/YOURUSER/.pid
,以记录服务的PID。资源限制:
为防止资源耗尽,可以设置
LimitCPU=
和LimitMemory=
,例如:LimitCPU=-1LimitMemory=500M
日志输出:
为了确保日志正确输出,可以使用
nohup
和重定向:在脚本中用:
nohup /path/to/your/script.sh > /path/to/logfile.log 2>&1 &
六、停止服务(强制重载)
在某些情况下,服务可能不响应,可以使用以下命令强制停止并重载:
systemctl force-reload service-demo.service
注意事项
- 确保所有脚本路径均为绝对路径,以避免相对路径导致的问题。
- 如果服务依赖于特定用户登录(例如,使用
-u
选项),请在[Service]
中指定用户。 - 如果您遇到权限问题,可以尝试使用
sudo
执行相关命令。
通过以上步骤,您可以成功地将自定义Java项目配置为CentOS7的Systemd服务,确保其自动启动并在系统运行中顺利运行。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年05月05日 10时33分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
张一鸣:创业7年,我经历的5件事
2019-03-07
《web安全入门》(四)前端开发基础Javascript
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
python struct 官方文档
2019-03-07
Android DEX加固方案与原理
2019-03-07
Android Retrofit2.0 上传单张图片和多张图片
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07