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 等信息。如果服务已经停止了,也可以查看最后一次服务的退出状态码。

posted @ 2023-02-18 16:46  好人~  阅读(616)  评论(0编辑  收藏  举报