当前位置: 首页 > news >正文

linux 文件自启动,Linux 开机自启动应用程序(进程)

前言:任何事情都一样,原理弄清楚了,所有的问题将变得不再神秘。

学计算机的人都知道,在任何同一时刻,计算机只能执行一条指令,而且都是顺序往下执行的(除非遇到跳转指令)。

Linux的进程启动都是根据启动脚本里的指令进行的,主要有两类:init

和bash. init 是所有脚本的最顶端,首先被执行,而bash一般是登陆shell 的时候才会被调用。

不同的文件系统具体的启动脚本文件名称是不一样的。以我使用的文件系统(yaffs)为例,/etc/init.d/rcS

作为init

的脚本,如果你想开机时进入自己的应用程序,则在rcS里面写入就可以。比如我想启动/usr/qtopia/chip 则在里面写入/usr/qtopia/chip –qws 就可以。

/etc/init.d/profile 作为bash 的脚本 ,在这个脚本里的指令 开机时不会被执行,但是你进入shell

状态时,就会被调用,一般来说bash 脚本多数用来存放环境变量,记住,每一次进入shell

都会调用一次bash 脚本。

来看看我分析一个例程,在/usr/qtopia 里有一个qt

程序,不采用自启动的方式,而是利用终端输入(进入终端就意味着进入shell)打开,这时候没问题,程序正常被打开,这说明里我的qt

库lib 的环境变量设置没问题。

但是当我采用自启动的方式,即在/etc/init/rcS 里加入/usr/qtopia/chip –qws 时却提示 error

while loading share qtlib.so.4 ````````为什么呢?

原因是这样的:我的环境变量放在/etc/profile 而程序执行指令放在/etc/init.d/rcS

,这里就会出现一个问题,rcS 最先被执行 而profile 还没被执行,这样很明显找不到lib

了嘛,回头看终端输入启动,为什么就找到lib 呢 ?很简单,你打开终端时,bash

已经被调用。这样,执行的顺序变为首先执行/etc/profile 然后才执行你的指令。

注:ubuntu 系统的bash 脚本是 ~/.bashrc 或者 /etc/bashrc

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 白话 Ajax 及其入门基础(1)
  • linux 维护shell脚本,Linux运维 | Shell脚本(2)
  • 白话 Ajax 及其入门基础(2)
  • linux系统如何安装git,linux安装git_Linux系统中怎么安装Git
  • cookie概述
  • 共享nas盘添加本地用户 linux,一步一步地把NAS的硬盘共享给Linux
  • VBA教程
  • linux 编译x264,Linux 下编译FFmpeg 支持x264, x265
  • 现在,该你出场(英雄会刊首语)
  • linux中获取网络时间,linux C++通过ntp协议获取网络时间
  • IT书讯 -- Inside Microsoft SQL Server 2005 Query Tuning and Optimization
  • Linux取消函数折叠,Linux下面对于VIM编辑器的代码折叠使用与screen
  • linux下如何修改终端名称,修改linux终端显示目录和主机名称
  • SQL 2008 T-Prep 之旅
  • 树莓派Linux中文怎样修改,树莓派修改键盘布局和支持中文
  • 【技术性】Search知识
  • DataBase in Android
  • JavaScript类型识别
  • LeetCode18.四数之和 JavaScript
  • Otto开发初探——微服务依赖管理新利器
  • Python_网络编程
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Selenium实战教程系列(二)---元素定位
  • Vue 重置组件到初始状态
  • Windows Containers 大冒险: 容器网络
  • 聊聊flink的TableFactory
  • 首页查询功能的一次实现过程
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 原生 js 实现移动端 Touch 滑动反弹
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • puppet连载22:define用法
  • 说说我为什么看好Spring Cloud Alibaba
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #pragma multi_compile #pragma shader_feature
  • (1)Jupyter Notebook 下载及安装
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (第61天)多租户架构(CDB/PDB)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm高校实验室 毕业设计 800008
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ../depcomp: line 571: exec: g++: not found
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core 6 集成和使用 mongodb
  • .net core Swagger 过滤部分Api
  • .NET 解决重复提交问题
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .net 提取注释生成API文档 帮助文档
  • .net 怎么循环得到数组里的值_关于js数组
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .sh 的运行