ARM Linux 系统设置开机自启动一个程序

news/2024/11/17 2:58:32/

前言

在之前做项目的时候, 他是一个智能拨号模块, 是一个单独运行的程序, 在ARM开发板上每次重启之后, 需要自己再去手动运行一次, 这个时候我们想到既然他是智能拨号模块, 那就要实现一个全自动的, 也就是开机时让他自启动,

自启动设置

1. 在Linux 下编写一个hello.c(此程序需要在ARM上开机自启动)

hello.c如下:

#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>int main (int argc, char **argv)
{int     fd = -1; int     rv = -1; char    buf[64];memset(buf, 0, sizeof(buf));strcpy(buf, "hello\n");fd = open("hello.txt", O_RDWR|O_CREAT, 0600);while(1){   rv = write(fd, buf, strlen(buf));sleep(3);}   return 0;
} 

2. 使用交叉编译工具编译hello.c, 生成一个在ARM下运行的可执行文件

使用交叉编译工具, 生成hello, 可执行问文件, 可以看到不能直接运行, file命令查看文件, 可以看到是 ARM.
在这里插入图片描述

3. 将可执行文件拿到ARM开发板上, chmod a+x hello , 给执行权限

这里有俩种方法都可以将文件拿到ARM板上 , 一种是通过secure crt 远程登陆的rz和sz命令, 将文件拿到ARM板上, 一种可以通过tftp将可执行文件拿过去. 要注意拿过去的可执行文件没有权限, 使用chmod 命令给一个权限
在这里插入图片描述
我们先执行一下, 可以看到已经将hello写入 hello.txt中, 将hello.txt删除, 方便我们进行以下的测试
在这里插入图片描述

4. 打开开机启动文件(shell 脚本), 每个板子可能有不同的Linux内核, 故启动文件名称不一样

例如:
/etc/init.d/rcS
/etc/init.d/rc.local
/etc/profile
/usr/etc/rc.local
我的板子上是 “/etc/init.d/rcS” 这个文件名称

在这里插入图片描述

5. 在 /etc/init.d/rcS 文件中添加需要自启动程序(方案一)

即在shell中 执行一个可执行文件, 进入到绝对路径, ./可执行文件名称 即可, 例如:
cd /apps
./hello
在这里插入图片描述

5. 在 /etc/init.d/路径中添加一个shell脚本(方案二)

创建了init进程, init进程执行init.d解释/etc/inittab, 这个就会去执行/etc/init.d中有一个rcS的脚本, 这个脚本是for循环, 找到/etc/init.d中以S打头的至少俩个字符的脚本, 然后执行这个脚本;

在这里插入图片描述
这个时候我们创建一个s41_gsmd的shell脚本, 在里面写上需要自动启动的程序即可; (记得要chmod 给权限哦~)
在这里插入图片描述

进行重启设备验证

我们重启设备去查看一下, 通过ps aux 查看一下, 可以看到 hello 正在运行
在这里插入图片描述
在这里插入图片描述
已经将hello 写入到了hello.txt中, 已经完成了程序开机自启动

这样就完成了一个ARM Linux 开机自启动一个程序的设置了


http://www.ppmy.cn/news/773296.html

相关文章

ubuntu开机自启动python程序

1.Ubuntu20.04自带app 1.1 applications 搜索start&#xff0c;出现如下界面 再选择add&#xff0c;按提示信息添加就可 1.2 another applications 终端输入gnome-weaks&#xff0c;出现下图所示 开机密码&#xff0c;先进入目录 cd /etc/gdm3 sudo gedit custom.c…

计算机怎么关闭开机自启应用,如何关闭电脑开机自动启动的软件程序

如何关闭电脑开机自动启动的软件程序 我们在电脑中安装软件的时候,不小心设置了开机启动,该怎么取消呢?今天就跟大家介绍一下如何关闭电脑开机自动启动的软件程序的具体操作步骤。 1. 首先打开电脑,找到桌面上的【360安全卫士】软件,双击打开: 2. 进入主页面后,点击上方…

如何使APP开机自启动

方案一 将app做成系统应用&#xff0c;直接安装在 system/app 目录下 具体步骤为&#xff1a; 1.在AndroidManifest文件中&#xff0c;添加 android:sharedUserId"android.uid.system"例如&#xff1a; 2.将您的apk直接通过adb命令push到system/app下面&#xff0…

java程序设置开机自启动

编写批量启动脚本 先创建一个start.bat的文件&#xff0c;直接创建一个txt将后缀名称改为bat就可以 在脚本内添加如下代码 echo off taskkill /f /im java.exe start cmd /k "java -jar C:\\Users\\Administrator\\Desktop\\substation-acquisition-system-2.6.jar cmd…

计算机应用软件开机自动启动设置,如何关闭开机自动启动的软件?

电脑开机时总会自动启动一些软件&#xff0c;然后造成电脑开机卡、慢的现象&#xff0c;那么针对这些开机自动启动的软件我们如何去关闭呢&#xff1f;今天就和大家一起聊一聊如何取消开机软件的自启。 一、关闭开机自启软件步骤 1.使用键盘组合键【WindowsR】,输入【msconfig】…

frp内网穿透并实现开机自启动

frp配置内网穿透、ssh远程连接、systemctl自启动 1.服务器端 VPS 配置内网穿透 修改frps.ini文件&#xff1a; # frps.ini[common]bind_port 7000 启动frps&#xff1a; ./frps -c ./frps.ini 2.客户端配置 修改 frpc.ini 文件&#xff0c;假设 frps 所在服务器的公网 IP …

linux自启动配置文件,linux 开机自启动设置

下面用自启动apache为例; 自启动脚本: /usr/local/apache2/bin; ./apachectl start 文件位于/etc/rc.d/init.d下,名为apached, 注意要可执行. #chmod +x /etc/rc.d/init.d/apached //设置文件的属性为可执行 #ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90a…

linux 设置开机自启动服务命令,linux 设置服务开机自启动

8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 由于机房断电,导致服务关闭,在运维人员匆忙的情况下,可能就只重启了机器,很容易就忽视了里面的服务,而对于比较重要的服务,是会影响用户使用的,比如数据库服务等。那么为了杜绝这类…