Linux笔记-使用systemd管理进程

背景

程序需要长期运行,写一个进程管理程序啥的,有成本,利用systemd(system daemon)可以使得进程能够快速管理起来。

过程

① 首先构造一个shell。把需要加载的环境变量啥的,都写上去,然后进行调用,我这里以tcsh为了。

构造xxweb.sh

bash 复制代码
vim /home/xx/xxweb.sh

xxweb.sh内容

bash 复制代码
#!/bin/tcsh
source /home/xx/xx.cshrc.xxx

/home/xx/xxServer

切换root用户,赋予权限

bash 复制代码
chmod 777 /home/xxx/xxweb.sh

② 新增xxweb.service

bash 复制代码
vim /etc/systemd/system/xxweb.service

xxweb.service内容如下:

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

[Service]
ExecStart=/home/xx/xxweb.sh
Restart=always
RestartSec=5
User=xx
Environment=SYSTEM_LOG_LEVEL=debug

[Install]
WantedBy=default.target

重新加载systemd

bash 复制代码
systemctl daemon-reload

③ 启动

切换root用户

bash 复制代码
systemctl start xxweb.service

查询状态

bash 复制代码
systemctl status xxweb.service

其他细节

① 如果要使用bash需要修改shell文件的开头

bash 复制代码
#!/bin/bash

② 设置为开机启动,需要切换root用户然后

bash 复制代码
systemctl enable xxweb.service
相关推荐
Web极客码2 小时前
WordPress 在哪里存储网站上的图片?
运维·服务器·wordpress
Moonquakes5402 小时前
嵌入式开发基础学习笔记(pwm spi)
笔记·学习
charlie1145141912 小时前
malloc 在多线程下为什么慢?——从原理到实测
开发语言·c++·笔记·学习·工程实践
杜子不疼.2 小时前
用Claude Code构建AI内容创作工作流:从灵感到发布的自动化实践
运维·人工智能·自动化
草莓熊Lotso2 小时前
从零手搓实现 Linux 简易 Shell:内建命令 + 环境变量 + 程序替换全解析
linux·运维·服务器·数据库·c++·人工智能
User_芊芊君子2 小时前
【LeetCode原地复写零】:双指针+逆向填充,O(n)时间O(1)空间最优解!
android·linux·leetcode
人工智能训练9 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
微露清风10 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
不会代码的小猴11 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记