v210 启动脚本分析

1. 一般嵌入式linux系统的init进程会首先读取/etc/inittab文件,这里记录了系统在不阶段需要运行的程序与脚本文件。

    其中v210的此文件里有这么一句

    ::sysinit:/etc/init.d/rcS

    也就是说在系统启动阶段要运行rcS文件。


2. 现在看rcS文件

   for i in /etc/init.d/S??* ;do                              

     case "$i" in
        *.sh)
            # Source shell script for speed.
            (
                trap - INT QUIT TSTP
                set start
                . $i
            )
            ;;
        *)
            # No sh extension, so fork subprocess.
            $i start
            ;;
    esac
 done

   很简单的脚本文件,有几个地方需要注意。

   实际这个脚本文件就是扫描init.d文件夹的下的所有以S开头的脚本。

   但这里在启动脚本之前,做了两件事,首先用trap命令忽略了一些可能打断脚本执行的信号。

   然后用set start设置一个本地变量。然后,用点+空格的方式来执行脚本。

   这样本地变量就可以通过脚本参数($1)的形式传递给了要执行的脚本。


3. 随便找一个init.d下的脚本来看一下。

    S99qttest


    case "$1" in
        start)
               echo "Starting qttest..."
               /usr/share/demo/qttest -qws &
               /usr/share/demo/hdmi_x210 &
               mkdir -p /mnt/userdata
               mount /dev/mmcblk0p4 /mnt/userdata
               ;;
        stop)
              echo -n "Stopping qttest..."
               ;;
        restart|reload)
               "$0" stop
               "$0" start
               ;;
        *)
                 echo "Usage: $0 {start|stop|restart}"
                 exit 1
     esac


    从这个要执行的脚本,就可以看到传递进脚本的参数的用途了。

    传递start才能启动那些我们想开机启动的程序。


   


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hdu 2940

简单的大数乘法&#xff0c;直接改16进制~~ #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <algorithm> #define maxn 3010 #define INF 0x7fffffff #define ull unsigned long long using namespace std…

shell变量详解

1 shell变量基础 shell变量是一种很“弱”的变量&#xff0c;默认情况下&#xff0c;一个变量保存一个串&#xff0c;shell不关心这个串是什么含义。所以若要进行数学运算&#xff0c;必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类&#xff1a;局部变…

PB datawindow中的文本调整打印长度

long row_count if right(label_text,1) ‘、’ then//label_text是在外面定义的全局变量&#xff08;Instance&#xff09; label_text left (label_text,len(label_text) -1) end if row_count ceiling(len(label_text) / 33) dw_print_nxs.modify("expand2_1.heigh…

redis php怎么使用教程,PHP 使用redis

connect($host, $port);if ($ret false) {die($redis->getLastError());}$ret $redis->auth($user . "-" . $pwd . "-" . $dbname);if ($ret false) {die($redis->getLastError());}/*接下来就可以对该库进行操作了&#xff0c;具体操作方法请…

Ubuntu apache 禁止目录浏览

$ sudo vim /etc/apache2/sites-enabled/000-default 将Options后面Indexes前面加上"-"表示禁止目录浏览&#xff1a; <Directory /var/www/> Options -Indexes ...... </Directory> 然后重启apache $sudo service apache2 restart 转载于:https://www.…

CMake命令之list

用途&#xff1a;提供一些列表操作 list(LENGTH <list><output variable>) list(GET <list> <elementindex> [<element index> ...] <output variable>) list(APPEND <list><element> [<element> ...]) li…

python内函数名加括号和不加括号的区别,python中 函数名加括号与不加括号

Maven之自定义archetype生成项目骨架&lpar;一&rpar;Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报 分类: Maven技术(9) ...Effective Objective-C 2&period;0 — 第9条&#xff1a;以&OpenCu…

POST

NSURL *url [NSURL URLWithString:"https://www.baidu.com"];NSMutableURLRequest *request [NSMutableURLRequest requestWithURL:url];request.HTTPMethod "POST";// 请求参数NSString *bodyStr [NSString stringWithFormat:"username%&pas…

CMake 手册详解(二十二)

原文地址 http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html CMD#65: separate_arguments 将空格分隔的参数解析为一个分号分隔的list。 separate_arguments(<var> <UNIX|WINDOWS>_COMMAND "<args>") 解析一个unix或者windows…

websocket多人聊天php,php-notes/基于websocket实现多人聊天室.md at master · dd-code-site/php-notes · GitHub...

WebSocket连接断开格式&#xff1a;ws://IP或域名:端口发送消息var websocket;var wsUrl;function connect(){try {wsUrl $(#wsUrl).val();websocket new WebSocket(wsUrl);websocket.onopen function(event){console.log(客户端与服务端连接成功);connectChangeButton();al…

cmake学习(二)常用变量和常用环境变量

一、变量的引用方式是使用“${}”&#xff0c;在IF中&#xff0c;不需要使用这种方式&#xff0c;直接使用变量名即可 二、自定义变量使用SET(OBJ_NAME xxxx)&#xff0c;使用时${OBJ_NAME}三、cmake的常用变量&#xff1a;CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR&am…

if和case用法比较

Case语句时并发语句&#xff0c;需要采用并行逻辑来实现&#xff0c;不存在逻辑的优先级别。If……else语句时多级嵌套语句&#xff0c;通常采用逻辑的串联来实现&#xff0c;该结构具有优先级别问题。这两种结构分别如下图所示&#xff1a; Always (a or b or c or d or s[1:…

CMake的使用

一、 基本使用 安装&#xff1a;下载二进制包后可直接解压使用 从源码安装则执行命令&#xff1a;./bootstrap; make; make install——尝试执行bootstrap失败 使用&#xff1a;cmake dir_path&#xff0c;生成工程文件或makefile文件 二、 概念 out-of-source …

PHP实训笔记,【学习笔记19】实验吧 让我进去

知识点MD5拓展攻击解题思路打开网站后看到&#xff0c;什么都没有&#xff0c;尝试抓包分析360截图17860604827894.PNGBurp 抓包发现&#xff0c;Cookie有东西。先是把source0改成source1,得到源码。、、、$flag "XXXXXXXXXXXXXXXXXXXXXXX";$secret "XXXXXXXX…

CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

看了好多网上的文章&#xff0c;都说PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。 实际不然。 一般来说&#xff0c;都是这样用 cmake ./ 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候&#xff0c;并不在源码…

toolStrip 按钮图片大小的修改

http://www.cnblogs.com/smallsoftfox/archive/2012/06/21/2558323.html转载于:https://www.cnblogs.com/PatrickLee/p/3526708.html

oracle11g数据文件路径,oracle11g trace路径和diagnostics路径的变化

Oracle11g中trace文件和日志文件的路径发生了变化在$ORACLE_BASE/diag建立了一些分类目录&#xff0c;用来保存各种日志&#xff1a;[oraclerac1 trace]$ cd $ORACLE_BASE[oraclerac1 oracle]$ cd diag[oraclerac1 diag]$ pwd/u01/app/oracle/diag[oraclerac1 diag]$ lsasm cli…

qt for v210

1. v210本身自带了qt4.8.4的qt库&#xff0c;路径在/usr/lib下面。但是我们需要对屏幕进行90度旋转。因此需要重新编译qt库。 我们编译了qt4.8.5的qt库&#xff0c;把/usr/lib下面libQt*删除&#xff0c;将编译好的libQt*拷贝过来即可。 2. 因为我们只用自己增加的文泉驿字体&…

DataGridView数据导入到Excel 中

#region DataGridView数据显示到Excel /// <summary> /// 打开Excel并将DataGridView控件中数据导出到Excel /// </summary> /// <param name"dgv">DataGridView对象 </param> /// <param name"isShowExcle">是…

cmake学习(一)静态库与动态库构建

(.so)共享库&#xff0c;shared object&#xff1a;节省空间&#xff0c;在运行时去连接&#xff0c;如果执行机器上没有这些库文件就不能执行。(.a)静态库,archive&#xff1a;静态库和程序化为一体&#xff0c;不会分开。通过 ldd命令可以查看一个可执行程序所依赖的的共享库…