- 最开始刚刚接触高级编程语言写出来一个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(很棒,对单复数不分的人很友好),这样查看日志很舒服
标签:bin,systemd,service,托管,sbin,自动,usr,local From: https://www.cnblogs.com/yangxiaoshuai/p/18686892