Linux 设置开机启动程序的方法总结

方法一

编辑 /etc/rc.local 文件,在合适的地方(比如末尾,exit 之前)添加想要开机执行的命令。

需要注意的是,如果文件开头是 #!/bin/sh -e,那么中途有任务执行失败的话会退出脚本,导致后面添加的命令没有执行。

方法二

执行 runlevel 查看当前系统等级

$ runlevel 
N 5

比如 5,那么创建 /etc/rc5.d/S97run_app.sh,内容如下

#!/bin/sh
/home/root/k37x_ui &
exit 0

自动登录 root

如果没有启动,可能还需要设置自动登录 root 账户,打开 /etc/systemd/system/getty.target.wants/serial-getty@ttymxc0.service

[Service]
Environment="TERM=xterm"
ExecStart=-/sbin/agetty -8 -L %I 115200 $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

将 ExecStart 一行修改为

ExecStart=-/sbin/agetty -a root -8 -L %I 115200 $TERM

不过,也没用呀。。。

方法三

在 /etc/init.d 目录创建 run_app.sh 文件

touch /etc/init.d/run_app.sh
chmod +x /etc/init.d/run_app.sh

run_app.sh 脚本内容如下:

#!/bin/sh
/home/root/k37x_ui &
exit 0

创建启动文件

cd /etc/init.d
update-rc.d run_app.sh defaults 97

执行结果如下

root@imx8mqevk:/etc/init.d# update-rc.d run_app.sh defaults 97
 Adding system startup for /etc/init.d/run_app.sh.

这将会创建出不同系统等级启动文件

# find /etc/ -name "*run_app.sh"
/etc/init.d/run_app.sh
/etc/rc0.d/K97run_app.sh
/etc/rc1.d/K97run_app.sh
/etc/rc2.d/S97run_app.sh
/etc/rc3.d/S97run_app.sh
/etc/rc4.d/S97run_app.sh
/etc/rc5.d/S97run_app.sh
/etc/rc6.d/K97run_app.sh

2 3 4 5 等级都会启动。

然而,重启之后还是没有。。。

删除开机启动

cd /etc/init.d
update-rc.d -f run_app.sh remove

执行结果如下

root@imx8mqevk:/etc/init.d# update-rc.d -f run_app.sh remove
update-rc.d: /etc/init.d/run_app.sh exists during rc.d purge (continuing)
 Removing any system startup links for run_app.sh ...
  /etc/rc0.d/K97run_app.sh
  /etc/rc1.d/K97run_app.sh
  /etc/rc2.d/S97run_app.sh
  /etc/rc3.d/S97run_app.sh
  /etc/rc4.d/S97run_app.sh
  /etc/rc5.d/S97run_app.sh
  /etc/rc6.d/K97run_app.sh

小结

三种方式都可以启动命令行程序,但是 Qt 程序启动不了,可能是环境依赖没准备好吧,再看看。

阿基米东 CSDN认证博客专家 架构 Linux MySQL
每天都在学习,每天都在折腾的一线工程师,在嵌入式 Linux、RT-Thread、IoT、DJango、miniapp、Git、软件管理等方面拥有丰富经验。工作之余喜欢打球、游泳、读书、写字。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值