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

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-02-22 07:28
Next 2024-02-22 07:33

相关推荐

  • linux中shell变量$#,$@,$0,$1,$2的含义是什么

    在Linux中,Shell变量是非常重要的概念,它们可以帮助我们更方便地处理命令行参数、文件名等信息,本文将详细介绍Linux中shell变量$、$@、$0、$1、$2的含义及其用法。$表示传递给脚本或函数的参数个数,当我们运行一个带参数的脚本时,$会自动被赋值为参数的个数。!/bin/bashecho "参数个数:……

    2023-12-15
    0144
  • Linux中怎么使用shell删除文件夹下所有文件

    在Linux中,我们可以使用shell命令来删除文件夹下的所有文件,这里我们将介绍两种方法:一种是使用rm命令,另一种是使用find命令。1. 使用rm命令rm命令是Linux系统中用于删除文件和目录的命令,我们可以使用-r选项来递归地删除文件夹及其内容,以下是使用rm命令删除文件夹下所有文件的方法:rm -r /path/to/yo……

    2024-01-22
    0243
  • shell execute怎么使用

    ShellExecute是一个Windows API函数,用于运行一个外部程序、打开一个已注册的文件、打开一个目录、打印文件等等功能。在C++中,可以使用ShellExecute函数打开一个记事本程序。

    2024-01-24
    0157
  • 怎么使用shell脚本查看redis版本号「shell脚本操作redis」

    要使用shell脚本查看Redis版本号,首先需要确保你的系统上已经安装了Redis,安装完成后,可以使用以下步骤来查看Redis版本号:1. 打开终端(Terminal)。2. 输入以下命令以启动redis-cli工具:redis-cli3. 如果Redis已经启动并监听默认端口6379,你将看到类似于以下的输出:127.0.0.1……

    2023-11-17
    0145
  • 怎么在shell脚本里使用sftp批量传送文件

    在Shell脚本中使用SFTP批量传送文件,我们可以使用lftp这个工具,它是一个功能强大的命令行FTP客户端,确保你的系统已经安装了lftp,如果没有安装,可以通过以下命令进行安装:对于Debian/Ubuntu系统:sudo apt-get install lftp对于CentOS/RHEL系统:sudo yum install ……

    2023-12-18
    0173
  • Android常用命令_Android

    Android常用命令包括adb devices、adb shell、adb pull、adb push等,用于连接设备、执行命令、传输文件等操作。

    2024-06-06
    0112

发表回复

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

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