标题: [精]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。