Ubuntu 20 如何设置开机自启动shell脚本?
需求:我有一个Jenkins工程,是手敲命令启动的。但每次开机都要手动执行一次命令,很不方便,能否设置为开机自动启动?
系统是Ubuntu 20.04版本
解决方案:
1.进入/lib/systemd/system能看到有很多启动脚本,其中rc-local.service是专门给用户自定义的
cd /lib/systemd/system
2.增加权限,开始编辑
sudo chmod 777 rc-local.service
vim rc-local.service
原始内容为:
3.增加内容为
[Install] WantedBy=multi-user.target Alias=rc-local.service
4.保存并退出:wq
5 .查看系统中有无 /etc/rc.local 这个文件,没有则自己创建一个。
5.1我这里是没有的
5.2我创建一个并编辑内容
sudo vim /etc/rc.local
5.3内容为
#!/bin/sh echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log exit 0
5.4增加可执行权限
sudo chmod +x /etc/rc.local
5.5查看文件权限
ll rc.local
6 增加软链接
sudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
7 重启尝试一下
成功了!
扩展:
1.这时候我就可以写个sh脚本,放在rc.local里面让他自动执行。但是这个默认是root权限执行,我想用普通用户执行,找了些资料,尝试了2种,都不行。后续再研究如何解决吧。(或者以后Jenkins用配置的时候,用root权限启动。)
尝试过程如下,
注意:
如果在 /etc/rc.local 中添加的是 ./test.sh 这种类型的,要在末尾加上&,不然重启ubuntu的时候会卡在启动界面进不去系统。
参考资料:
https://blog.csdn.net/qq_43685040/article/details/111574332
https://www.cnblogs.com/wtil/p/12808424.html