- 最开始刚刚接触高级编程语言写出来一个web程序的时候,我就开始建立了一个网站,但是当时把后端部署到服务器上如何离线运行呢?退出了ssh连接就会停止运行,我当时不熟悉linux,所以使用了一个最愚蠢的办法,用nohup来运行,哈哈哈,后来才知道systemd,最近又在开发,虽然在测试阶段,还是分享一下,让小白也能优雅的将程序托管给systemd
- 首先给出一个模板:
[Unit]
Description=瑜伽api的测试
After=network.target
[Service]
ExecStart=/bin/bash /home/yang/workspace/yoga/apiYoga/shell/apiStart.sh
WorkingDirectory=/home/yang/workspace/yoga
Restart=always
User=yang
Group=yang
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin"
StandardOutput=journal
StandardError=journal
SyslogIdentifier=yoga
[Install]
WantedBy=multi-user.target
你只需要写一个shell,然后把执行的命令写入这个shell中,把shell交给systemd来执行就好了
接下来是注意事项
-
新建文件的位置应该在/etc/systemd/system/ 中,并且命名应该为name.service
-
使用之前需要先使用 echo $PATH 得到PATH的内容,然后再在Environment中写入如下内容,你不这样做的话连cd,ls这种最基本的功能都不能使用
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin"
- 记得每次对/etc/systemd/system/中的内容进行修改新增之前都进行如下操作:
sudo systemctl daemon-reload
- 查看日志:
sudo journalctl -u yoga.service
这个命令能查看到指定的service的日志,而
journalctl -xe
这个命令则不一样,这个是查看最近使用的这个service的,简单来说会好一点.因为一个service不是stop之后日志就会被删除,也就是说我可能使用了10次,systemd真就把这十次的都给我保存了下来,那么一开始的内容很自然的就是第一次的,而不是我大概率想看到的第11次的.
有一个补救的办法
sudo journalctl -u yoga.service --since "1 hour ago"
这里的hour可以换成minutes或者minute(很棒,对单复数不分的人很友好),这样查看日志很舒服
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?