Linux系统的开机自启脚本方法

centOS中

方法1:/etc/rc.local

/etc/rc.local是rc.d/rc.local的软链

1、在自己需要启动的文件目录中编写一个shell脚本文件auto_run_script.sh(文件名称你们随意)。我的这个timeTest文件是timeTest.cpp编译过来的。主要是过几秒打印一下时间。最好先验证一下你自己写的这个脚本能不能运行。

#!/bin/bash

cd /root/

./timeTest >> /root/output.txt

sleep 3

date >> /root/output.txt

随后需要给这个文件可执行的权限

chmod 777 auto_run_script.sh

2、在centOS7中我是看到了这个东西,但是ubanto中好像没有看到。

vim /etc/rc.local

打开这个文件之后在末尾添加(这样开机之后就会运行你自己的脚本了。其他的脚本也是一样)

/root/auto_run_script.sh

随后需要给这个文件可执行的权限

chmod 777 /etc/rc.local

3、重启

reboot

4、查看是否执行了开机自启命令

cat output.txt

在这里插入图片描述

方法2:使用 crontab

大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。

我们可以自己设置计划任务时间,然后编写对应的脚本。但是,有个特殊的任务,叫作 @reboot ,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。

那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过 crontab -e 来设置。

crontab -e
@reboot /home/ok/auto_run_script.sh

然后,直接重启即可。运行的效果跟上面类似。
在这里插入图片描述

方法三:使用 systemd 服务

这个我没试,大家感兴趣的话可以自己试试。

Ubuntu中

方法一:普通执行文件

1.首先创建脚本文件
如下面的start.sh,

#!/bin/sh
cd ~/test_ws/src/server/
#./server >> output.text
	
gnome-terminal -- bash -c "cd ~/test_ws/src/server/;./server; exec bash"
#sleep 3		
gnome-terminal -- bash -c "sleep 3;cd ~/test_ws/src/server/;python3 client_camera.py --shell; exec bash"

2.给脚本添加可执行权限
因为刚创建的.sh文件是不可执行的,需要添加权限才可执行,添加方法很见单,使用chmod命令即可

chmod +x start.sh
或者
chmod 777 start.sh

3.在终端中运行脚本进行测试
打开终端,进入脚本所在路径,运行

./start.sh

终端输出正常的运行结果,测试有效.

4.在新的终端运行
在之前的步骤之后,即使添加到了开机自启动,就算运行,也不能看出来是否真的在运行,甚至可能就没有在运行,也可能运行之后瞬间结束,为此,可以采用打开一个新终端加延时的方式运行,修改start.sh脚本:

其中gnome-terminal -x bash -c会打开一个新的bash终端并执行c后面的语句,语句用’; ;;’,隔开,最后的sleep 5表示延迟5秒退出,这样就可以在新的终端看到运行效果,添加这个延时是为了方便验证是否启动程序或者节点
!注意,如果是ubuntu 18.04的系统,gnome-terminal -x bash -c(这个新系统已经不用了包括,gnome-terminal -e bash -c都已经弃用了)需要改写成gnome-terminal -- bash -c

在完成了上述步骤之后,可以将脚本添加到ubuntu开机启动管理器里头,具体操作如下:

1.打开ubuntu启动管理器
在终端输入gnome-session-properties运行,会打开一个界面,这里记录着系统上层应用的启动软件:
在这里插入图片描述

可以根据需要点击Add将对应的启动项目加进来,启动项可以是脚本,这里以脚本为例,把上面的start.sh脚本添加到启动项里来
2.添加执行项目
点击Add按键
输入相应的信息,这里NameComment都可以自己随意设置,只是对启动项的一个说明,中间的Command才是要运行的内容,可以点击Browse…来进行选择,这里就选择刚刚的那个脚本文件(注意脚本文件一定要有可执行的权限).
在这里插入图片描述

最后点击Add就可以了,界面中就会多了一项刚刚设置的内容
在这里插入图片描述

3.重启测试
点击重启就可以测试了,会发现开机之后确实打开了一个新的终端,并运行了脚本里的程序.
由于一般设备都设置了密码,而管理器里的这些程序,是需要登录之后才可以进行的,所以,可以将设备设置为自动登录,具体的方法如下:
A. 进入系统设置==>用户设置
在这里插入图片描述

B.设置自动登录
按照如下的顺序进行设置
在这里插入图片描述

引用:
1、LINUX系统如何设置开机自动运行脚本?
2、CSDN博主「北方南方2020」的原创文章,原文链接:https://blog.csdn.net/baidu_34319491/article/details/106456571

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想让一个脚本Linux 开机时自动运行,你可以按照以下步骤设置开机自启脚本: 1. 编写脚本文件 首先,你需要编写一个脚本文件,这个文件将作为开机自启脚本。你可以使用任何文本编辑器,例如 vim 或 nano。 例如,假设你想要运行一个名为 `myscript.sh` 的脚本,这个脚本位于 `/home/user/myscript.sh`。你可以使用以下命令创建这个脚本文件: ``` nano /home/user/myscript.sh ``` 然后,将你需要运行的命令写入到这个脚本中。 2. 将脚本文件设置为可执行 在你可以运行脚本之前,你需要将它设置为可执行。你可以使用以下命令将 `myscript.sh` 设置为可执行: ``` chmod +x /home/user/myscript.sh ``` 3. 将脚本添加到启动脚本中 接下来,你需要将脚本添加到启动脚本中。不同的 Linux 发行版可能有不同的启动脚本,但大多数都使用了 systemd。 如果你的 Linux 发行版使用 systemd,请遵循以下步骤: - 创建一个名为 `myscript.service` 的文件,这个文件将作为服务的配置文件。 ``` sudo nano /etc/systemd/system/myscript.service ``` - 在 `myscript.service` 文件中添加以下内容: ``` [Unit] Description=My script [Service] ExecStart=/home/user/myscript.sh Restart=always User=username [Install] WantedBy=multi-user.target ``` 请注意,你需要将 `ExecStart` 中的路径替换为你的脚本路径,并将 `User` 替换为你的用户名。如果你想要在脚本失败时自动重启脚本,请将 `Restart` 设置为 `always`。 - 保存并关闭 `myscript.service` 文件。 - 激活服务,并设置开机自启: ``` sudo systemctl enable myscript.service sudo systemctl start myscript.service ``` 现在,你的脚本应该已经被设置为开机自启,且已经在启动时自动运行了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值