Linux Ubuntu下设置开机自启动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangqingchuan92/article/details/86260024

0x00前言

文章中的文字可能存在语法错误以及标点错误,请谅解;

如果在文章中发现代码错误或其它问题请告知,感谢!

0x01 概述

网上搜索一下可以发现有很多自启动的方法,本文介绍一下修改rc.local配置文件以及在/etc/rcn.d中添加软连接方法实现自启动。

0x02 修改rc.local设置开机自启动

Ubuntu下有两个rc.local,分别是/etc/rc.local和/etc/init.d/rc.local。一般是将需要执行的开机启动项添加到/etc/rc.local中(另外要注意有些Linux系统的rc.local是存放路径在etc/rc.d中,即etc/rc.d/rc.local)。

所以修改rc.local配置文件设置开机自启动一般步骤:
1.打开配置文件:#sudo vi /etc/rc.local(非Ubuntu一般为#sudo vi /etc/rc.d/rc.local)
2.将要开机启动的可执行文件(程序)或start.sh脚本的路径及名称填写该配置文件中。例如在该配置文件中的exit 0前添加/home/fip/Desktop/Record/start.sh。

设置完成后重启系统,当重新开机后打开终端使用#ps -ef | grep 启动项名称 看看启动项是否在后台运行,若有则成功。

举例:
目前使用gcc编译出了一个可执行文件,名称为“EPSRecord”,现在想要这个可执行文件在开机上电之后就运行:
在这里插入图片描述
此时可以编写一个sh脚本,该脚本目的是运行该可执行文件:

#!/bin/sh

echo "EPSRecord SH START"

CUR_DIR=$(cd "$(dirname "$0")"; pwd)
export LD_LIBRARY_PATH=${CUR_DIR}
chmod +x ${CUR_DIR}/EPSRecord
${CUR_DIR}/EPSRecord  &

echo "EPSRecord SH END"

在这里插入图片描述
将该脚本的路径及名称填写到/etc/rc.local中:

在这里插入图片描述
最后重启系统,并输入指令ps -ef | grep EPSRecord看该可执行文件是否已经自启动:
在这里插入图片描述此时可以看到该可执行程序已经在后台运行了。

注意,上述的startup.sh脚本中第8行最后有“&”符,建议加上,表示后台运行。

0x03在/etc/rcn.d (n表示级别)中添加软链接

添加软连接设置开机自启动一般步骤:
1.将对应的启动脚本start.sh放入/etc/init.d目录下;
2.查询当前用户运行级别#runlevel
3.到对应的rcn.d目录中添加软链接。

设置完成后重启系统,当重新开机后打开终端使用#ps -ef | grep 启动项名称 看看启动项是否在后台运行,若有则成功。

举例:
同上小节,以想要开机自启动可执行程序EPSRecord为例,首先编写.sh脚本(与上小节有所不同,这次在脚本中直接赋予权限和执行操作,注意要指明可执行文件的路径及名称):

#!/bin/sh

echo "EPSRecord SH START"

chmod +x /home/fip/Desktop/Record/EPSRecord
./home/fip/Desktop/Record/EPSRecord  &

echo "EPSRecord SH END"

在这里插入图片描述
将脚本放置到/etc/init.d中:
在这里插入图片描述
输入指令#runlevel查看当前用户运行级别:
在这里插入图片描述
查得当前得运行级别为2,所以进入到/etc/rc2.d目录下,并添加软连接:
在这里插入图片描述
软连接的名称为S99start,其中S表示启动,99表示运行顺序。
此时/etc/rc2.d中出现S99start软链接:
在这里插入图片描述
最后重启系统,并输入指令ps -ef | grep EPSRecord看该可执行文件是否已经自启动:
在这里插入图片描述
以上。

参考文档:
1.https://blog.csdn.net/u013401853/article/details/71079595
2.https://blog.csdn.net/vertor11/article/details/78425342

猜你喜欢

转载自blog.csdn.net/wangqingchuan92/article/details/86260024