一、写一个脚本
在Documents
文件夹(随意放在你习惯的位置)中建立一个init.sh脚本,写上开机后需要执行的动作
touch init.sh #建立文件,双击打开
init.sh内容为(这是我开机后需要执行的动作,比如进到我的gopath文件夹中执行main文件,学习go语言的懂得都懂。如果是python文件,可以写成python test.py ,反正当作终端去写)
#!/bin/bash
echo '[RG200U helper] Ready' #echo相当于注释 这行不重要
sleep 120
echo '[RG200U helper] Sending info to server..'
cd /home/catlab/GOPATH/src/init-ip/client/ && ./main #这行重要
sleep 20
echo '[RG200U helper] mpquic test...'
cd /home/catlab/GOPATH/src/mp-quic-conext17/example/client/ && ./main -m -file dummy128.txt https://10.92.8.154:6121/demo/upload
sleep 20
echo '[RG200U helper] mptcp test...'
cd /home/catlab/GOPATH/src/mp-quic-conext17/example/mptcp/client/ && ./main /home/catlab/GOPATH/src/mp-quic-conext17/example/mptcp/client/dummy128.txt
exit 0
注意:绝对路径的写法,不能写~。如果需要执行的文件在home文件夹里,路径可以写成 /home/name/需要执行文件(夹),不知道这个name的,可以右击home文件夹选择属性(如图所示我电脑的name为catlab)
我要运行的是go文件,这里是go的一个小tip:如果写go run xx.go
报错,就在xx.go文件所在目录下go build xx.go
生成xx文件,直接./xx
运行。记得每次修改完xx.go文件后要再次go build xx.go
(这个小tip不重要)
二、设置自启动
你所有要执行的动作写在init.sh文件中了,可以先自行bash init.sh
,运行一下你的init.sh文件检查一下错误,相当于模拟开机后的自启动。
然后就是设置,如何在开机后自动执行这个init.sh文件了。
1、首先我的ubuntu版本是18.04 。
在/etc文件夹中建立rc.local的脚本文件,作为自启动脚本文件。(我想开机后直接执行我刚刚写的init.sh 文件)(当然你也可以将init.sh文件中的内容复制进来,写init.sh是为了方便自行运行检查,省的一遍遍重启)
sudo gedit /etc/rc.local #建立文件并打开
rc.local内容为
#!/bin/sh -e
cd /home/catlab/Documents/
bash init.sh
exit 0
给rc.local可执行权限
sudo chmod 777 rc.local
2、建立软连接(不懂,跟着做就行)
sudo gedit /etc/systemd/system/rc-local.service #建立文件并打开
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
elias=rc-local.service
sudo chmod 777 /etc/systemd/system/rc-local.service #加权限
给另一个文件添加相同install字段(内容一样的)
sudo gedit /lib/systemd/system/rc-local.service
[Install]
WantedBy=multi-user.target
elias=rc-local.service
sudo chmod 777 /lib/systemd/system/rc-local.service #加权限
将 /lib/systemd/system/rc-local.service 链接到 /etc/systemd/system/ 目录下面来
sudo ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
启动systemctl服务
systemctl start rc-local
systemctl enable rc-local
这就好了。
最后重启等着自启动就好了。
最后:
如果要修改自启动内容一共有两个地方:
第一个是你自己写的init.sh文件;
第二个是rc.local文件。(刚刚说了这两个文件是一个性质,可以不写init.sh,直接写在rc.local文件中就好,只是方便检查)(gedit /etc/rc.local)(这里放一个打开rc.local命令,防止忘记)
所以如果自启动有问题就检查这两个文件有没有写错(我是绝对路径出错)
检查rc.local文件可以用下面这个命令查看上一次自启动出现的问题(相当于一个log)(直接终端执行就好)文章来源:https://www.toymoban.com/news/detail-762595.html
sudo systemctl status rc-local
保姆级教程了,希望大家科研路上少走弯路(🙇♀️文章来源地址https://www.toymoban.com/news/detail-762595.html
到了这里,关于Ubuntu开机自启动脚本+设置(手把手教程,包教包会)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!