ubuntu 开机自启动shell脚本

在Ubuntu中,我们可以通过编写shell脚本并将其添加到systemd服务中,实现开机自动启动,这种方法的优点是可以在系统启动时自动执行脚本,无需手动运行,下面详细介绍如何实现这一功能。

1、编写shell脚本

ubuntu 开机自启动shell脚本

我们需要编写一个shell脚本,这个脚本将包含我们希望在开机时自动执行的命令,我们可以创建一个名为startup.sh的文件,内容如下:

!/bin/bash
echo "Hello, World!" > /tmp/hello.txt

这个脚本将在/tmp目录下创建一个名为hello.txt的文件,并在其中写入"Hello, World!"。

2、为脚本添加可执行权限

接下来,我们需要为脚本添加可执行权限,在终端中,使用以下命令:

chmod +x startup.sh

3、创建systemd服务文件

为了在开机时自动运行脚本,我们需要将其添加到systemd服务中,创建一个名为startup.service的文件,内容如下:

[Unit]
Description=Startup script
After=network.target
[Service]
Type=simple
User=root
ExecStart=/path/to/startup.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

请将/path/to/替换为实际的脚本路径,这个文件定义了一个systemd服务,该服务在网络连接可用后(即network.target目标)启动,并使用root用户运行我们的脚本,如果脚本执行失败,服务将自动重启,该服务将被添加到multi-user.target目标中,这意味着它将在所有用户登录后启动。

ubuntu 开机自启动shell脚本

4、将服务添加到systemd

现在,我们需要将新创建的服务添加到systemd中,在终端中,使用以下命令:

sudo systemctl enable startup.service

5、测试开机自启动

为了确保一切正常,我们可以先尝试手动启动服务,然后查看日志以确认脚本已成功执行,使用以下命令:

sudo systemctl start startup.service
sudo journalctl -u startup.service --since today --no-pager --follow

如果一切正常,你应该会看到类似以下的输出:

-Logs begin at Wed 2022-01-05 12:34:56 CST, end at Wed 2022-01-05 12:35:01 CST. --
Jan 05 12:34:56 myhostname systemd[1]: Starting Startup script...
Jan 05 12:34:56 myhostname startup.sh[987]: Hello, World!
Jan 05 12:35:01 myhostname systemd[1]: Started Startup script.

至此,我们已经成功地将shell脚本添加到了Ubuntu的开机自启动中,每次开机时,脚本都会自动执行。

相关问题与解答

ubuntu 开机自启动shell脚本

问题1:如何取消开机自动启动?

答:要取消开机自动启动,可以使用以下命令:

sudo systemctl disable startup.service

这将从systemd中移除我们的服务,使其不再在开机时自动启动,请注意,这不会影响已经运行的服务实例,如果你希望立即停止服务,可以使用以下命令:

sudo systemctl stop startup.service

问题2:如何在开机时延迟执行脚本?

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/328216.html

(0)
K-seoK-seoSEO优化员
上一篇 2024年2月22日 07:28
下一篇 2024年2月22日 07:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入