ubuntu20.04开机自动运行脚本实例
在 Ubuntu 20.04 中,/etc/rc.local 文件仍然存在,但不再默认启用,因为它已经被 systemd 代替。下面是使用systemd开机执行的脚本的实例:
1.编写脚本myscript.sh:在编写myscript.sh脚本时,需要确保它是可执行的,并且在脚本中需要包含适当的命令来执行所需的操作。
- 可执行权限:
chmod 755 /home/user/myscript.sh
- 脚本内容举例如下:
#!/bin/bash
sudo service apache2 start
请注意,您需要在脚本的第一行添加#!/bin/bash
或类似的行,以指定使用的shell类型。如果您不添加#!/bin/bash
,操作系统将尝试使用默认shell来运行脚本。这可能会导致一些问题,因为不同的shell类型可能对相同的命令或语法有不同的解释方式。
2.创建systemd unit文件
在/etc/systemd/system目录中创建一个新的unit文件,例如/home/user/myscript.service:
sudo nano /etc/systemd/system/myscript.service
添加以下内容:
[Unit]
Description=My Script
After=network.target
[Service]
ExecStart=/home/user/myscript.sh
[Install]
WantedBy=default.target
3.重新加载systemd
使用以下命令重新加载systemd:
sudo systemctl daemon-reload
4.启用unit文件
使用以下命令启用unit文件,以便systemd在下次引导时启动它:
sudo systemctl enable myscript.service
5.启动unit文件
使用以下命令立即启动unit文件:
sudo systemctl start myscript.service
现在,myscript.sh脚本将在系统引导时自动执行。如果您需要停止或重启脚本,可以使用以下命令:
sudo systemctl stop myscript.service
sudo systemctl restart myscript.service
禁用服务:
sudo systemctl disable myscript.service
查看systemd服务的运行状态及其日志:
6.查看服务状态:
systemctl status myscript.service
这个命令可以查看服务是否正在运行,最后一次状态更新的时间,进程 ID 等信息。如果服务已经停止了,也可以查看最后一次服务的退出状态码。