标题: [精]Linux创建systemd启动项实现开机自启动
时间: 2021-11-17发布,2021-11-17修改
以下所有操作都需要root权限,请使用sudo -i。
创建如下文件:
/etc/systemd/system/myservice.service
内容:
[Unit]
Description=my service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/path-to/myservice.sh
[Install]
WantedBy=multi-user.target
/path-to/myservice.sh是要运行的程序,它需要一直保持运行,不会退出。如果/path-to/myservice.sh退出,systemd会以1秒一次的频率不断重启/path-to/myservice.sh。
如果你的/path-to/myservice.sh在运行完成后会退出,不需要自动重启,请把Restart=always改成Restart=no。
After=network.target表示联网后才会启动这个服务。如果你需要联网前启动,可以删掉。
然后启动:
systemctl start myservice
设为开机自启动:
systemctl enable myservice
查看运行状态:
systemctl status myservice
查看日志:
journalctl -u myservice
修改myservice.service后,刷新systemd守护进程使修改生效:
systemctl daemon-reload
停止服务:
systemctl stop myservice
取消开机自启动:
systemctl disable myservice
删除服务:
rm /etc/systemd/system/myservice.service
『回复列表(13|显示机器人聊天)』
su输入的是root用户的密码,sudo输入的是当前用户的密码。su不需要输入密码。这就是sudo su只需要输入一次密码的原因,它首先通过sudo切换到root用户,然后以root用户身份执行su,于是不需要再输入root用户的密码。su不会切换工作目录,也就是说,执行后依然停留在当前目录。su -l和sudo -i会把工作目录切换到root用户的家目录,相当于在切换到root用户之后执行了cd $HOME。su不会加载root用户的配置文件(比如~/.profile,~/.bashrc等)。其他命令则会加载。su -是su -l的缩写,两者功能相同。sudo一次后,5分钟内不需要输入密码。su没有状态保持功能,每次都需要重新输入密码。所以:
sudo su -,sudo su -l和sudo -i完全相同。sudo su和上述三个命令的区别是:~/.profile,~/.bashrc等)。sudo,直接使用su,就需要输入root用户的密码,必须知道root用户的密码才能成功。sudo -i,sudo su -,sudo su -l,su -,su -l:进入 login shell。sudo su,su:进入 non-login shell。