作家
登录

Linux启动分析——init进程与app启动

作者: 来源: 2017-08-31 16:12:53 阅读 我要评论

static const char actions[] ALIGN1 = 
  •             "sysinit\0""wait\0""once\0""respawn\0""askfirst\0" 
  •             "ctrlaltdel\0""shutdown\0""restart\0"
  •         int action
  •         char *tty = token[0]; 
  •  
  •         if (!token[3]) /* less than 4 tokens */ 
  •             goto bad_entry; 
  •         action = index_in_strings(actions, token[2]); 
  •         if (action < 0 || !token[3][0]) /* token[3]: command */ 
  •             goto bad_entry; 
  •         /* turn .*TTY -> /dev/TTY */ 
  •         if (tty[0]) { 
  •             tty = concat_path_file("/dev/", skip_dev_pfx(tty)); 
  •         } 
  •         new_init_action(1 << action, token[3], tty); 
  •         if (tty[0]) 
  •             free(tty); 
  •         continue
  •  bad_entry: 
  •         message(L_LOG | L_CONSOLE, "Bad inittab entry at line %d"
  •                 parser->lineno); 
  •     } 
  •     config_close(parser); 
  • #endif 
  •  
  • 起首去读了/etc/inittab这个文件,如不雅不存在,履行了很多new_init_action() ,如不雅存在,就走了一个while()轮回,猜测应当是解析/etc/inittab文件的内容,根据文件的内容履行new_init_action() 。好,那么inittab文件到底写什么格局,什么器械呢,while()轮回琅绫擎有一个static const char actions[]数组看起来像是和inittab的内容有关系,琅绫擎有“sysinit”等字符串,然则照样没办法搞清跋扈怎么写inittab文件

    inittab文件怎么写

    /busybox/examples/下面找到一个inittab脚本的例子,打开,看到一个类似格局解释的句子:

    1. Format for each entry: <id>:<runlevels>:<action>:<process> 

    猜测inittab文件里可以有多条entry,每条entry格局中有id、runlevels、action和process这四项内容,这里也出现了action,和代率攀里的action数组很像。文件里又说id和runlevels可有可无,好,要搞清跋扈inittab怎么写,关键在于懂得action和process,持续看解释


      推荐阅读

      关于ES6的10个最佳特性

    ES6,正式名称是ECMAScript2015,然则ES6这个名称加倍简洁。ES6已经不再是JavaScript最新的标准,然则它已经广泛用于编程实践中。如不雅你还没用过ES6,如今还不算太晚...下面是10个ES6最>>>详细阅读


    本文标题:Linux启动分析——init进程与app启动

    地址:http://www.17bianji.com/lsqh/37057.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)