Ubuntu下添加开机启动脚本

1、方法一,编辑rc.loacl脚本 

Ubuntu开机之后会执行/etc/rc.local文件中的脚本,

所以我们可以直接在/etc/rc.local中添加启动脚本。

当然要添加到语句:exit 0 前面才行。

如:

sudo vi /etc/rc.local

然后在 exit 0 前面添加好脚本代码。

 2、方法二,添加一个Ubuntu的开机启动服务。

如果要添加为开机启动执行的脚本文件,

可先将脚本复制或者软连接/etc/init.d/目录下,

然后用:update-rc.d xxx defaults NN命令(NN为启动顺序),

将脚本添加到初始化执行的队列中去。

注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如99。

1) 将你的启动脚本复制到 /etc/init.d目录下
 以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限
 $ sudo chmod 755 /etc/init.d/test
3) 执行如下命令将脚本放到启动脚本中去:
 $ cd /etc/init.d
 $ sudo update-rc.d test defaults 95
 注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:
update-rc.d: warning: /etc/init.d/test missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
  Adding system startup for /etc/init.d/test ...
    /etc/rc0.d/K95test -> ../init.d/test
    /etc/rc1.d/K95test -> ../init.d/test
    /etc/rc6.d/K95test -> ../init.d/test
    /etc/rc2.d/S95test -> ../init.d/test
    /etc/rc3.d/S95test -> ../init.d/test
    /etc/rc4.d/S95test -> ../init.d/test
    /etc/rc5.d/S95test -> ../init.d/test
卸载启动脚本的方法:
 $ cd /etc/init.d
$ sudo update-rc.d -f test remove
命令输出的信息参考如下:
Removing any system startup links for /etc/init.d/test ...
    /etc/rc0.d/K95test
    /etc/rc1.d/K95test
    /etc/rc2.d/S95test
    /etc/rc3.d/S95test
    /etc/rc4.d/S95test
    /etc/rc5.d/S95test
    /etc/rc6.d/K95test

### 配置 Ubuntu 20.04 开机启动 Shell 脚本 #### 使用 `rc.local` 方法 为了使脚本能够在系统启动时执行,在 `/etc/rc.local` 文件中添加命令是一种常见方法。创建或编辑该文件并加入待执行的Shell脚本路径,注意确保每条命令后面跟有 `&` 符号以便让它们在后台运行,防止阻塞系统的正常启动过程[^2]。 ```bash sudo nano /etc/rc.local ``` 向文件内写入如下内容: ```bash #!/bin/bash ./path/to/test.sh & exit 0 ``` 保存更改后退出编辑器,并赋予此文件可执行权限: ```bash sudo chmod +x /etc/rc.local ``` #### 创建 Systemd Service 单元 另一种更为推荐的方式是在Ubuntu 20.04上通过定义一个新的Systemd服务单元来管理开机启动项。这提供了更好的控制和服务状态监控能力。 准备一个简单的Service配置文件,比如命名为 `my-startup-script.service`: ```ini [Unit] Description=My Startup Script After=network.target [Service] ExecStart=/full/path/to/test.sh Restart=on-failure [Install] WantedBy=multi-user.target ``` 将上述内容存放到 `/etc/systemd/system/my-startup-script.service` 下面,接着刷新daemon加载新服务并启用之使其随系统一同启动: ```bash sudo systemctl daemon-reload sudo systemctl enable my-startup-script.service ``` 最后可以立即尝试启动这个新建的服务来进行初步验证: ```bash sudo systemctl start my-startup-script.service ``` 对于想要测试的具体Shell脚本实例,下面是一个简单例子用于确认自启机制工作正常[^3]: ```bash #! /bin/bash echo "自启动成功" sleep 1s # cd /home/user/ # gnome-terminal -x bash -c "command1; command2; exec bash" // 替换成实际需要执行的任务列表 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值