一.Linux系统主要启动步骤

Linux 系统主要启动步骤:

Windows 使用 NTLDR 作为 Boot Manager,如果您的系统中安装多个版本的 Windows,您就需要在 NTLDR 中选择您要进入的系统。Linux 通常使用功能强大,配置灵活的 GRUB 作为 Boot Manager。

2. 加载系统内核,启动 init 进程。init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。

3. init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本。脚本通常以 start 参数启动,并指向一个系统中的程序。通常情况下, /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。例如您设定的运行级别为 3,那么它对应的启动目录为 /etc/rc3.d/ 。

4. 根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorgXwindow 为 Linux 下的图形用户界面系统。

5. 启动登录管理器,等待用户登录。Ubuntu 系统默认使用 GDM 作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。

二、Ubuntu添加开机自动启动程序的方法

1. 开机启动时自动运行程序

首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个 文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的x windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接,也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序!

要启动scim (某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表 示是 属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相 应的软链接就可以了。

这个脚本其实很简单,就两行:

#!/bin/bash

/usr/bin/scim

第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。

还 需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。

在rh下,rc.local是默认启动的最后一个脚本文件,所以,如果你想要随机启动,还有一种方法就是在rc.local的尾部加入/usr/bin/scim,这样就可以了。

Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在

/etc/rc或

/etc/rc.d 或

/etc/rc?.d

目录下的脚本文件,可以使init自动启动其它程序。

Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本。

当然要添加到语句:exit 0 前面才行。如果要添加为开机启动执行的脚本文件,可先将脚本复制或者软连接到/etc/init.d/目录下,然后用:update-rc.dxxx defaults NN命令(NN为启动顺序),将脚本添加到初始化执行的队列中去。

注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如98 。

2. 登录时自动运行程序

用户登录时,bash先自动执行系统管理员建立的全局登录script :

然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:

/.bash_login、

但只执行最先找到的一个。因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于dos下的autoexec.bat)。

3. 退出登录时自动运行程序

退出登录时,bash自动执行个人的退出登录脚本

/.bash_logout。

例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。

4. 定期自动运行程序

Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。

例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontabcronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。

5. 定时自动运行程序一次

定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。

ubuntu进入桌面自动启动脚本_Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法...相关推荐

  1. Ubuntu无桌面环境启动GUI程序

    文章目录 Ubuntu无桌面环境启动GUI程序 1 测试环境 2 定制启动入口 2.1 切换到/usr/share/xsessions目录 2.2 创建*.desktop文件 3 设置自动登录 4 重 ...

  2. linux中设置程序开机自动启动

    为什么80%的码农都做不了架构师?>>>    centos/redhat 设置开机自动启动程序的方法 一.利用chkconfig把程序添加为系统服务 1.编写chkconfig可以 ...

  3. linux下添加自动启动项,linux 开机自动启动脚本方法

    #service servicename status是当前状态 #chkconfig --list servicename是查看启动状态,也就是是否开机自动启动 首先写好脚本,如 mysql,把它放 ...

  4. Linux 设置程序开机自动启动

    目录 1. 基础说明 2. 编辑启动文件 3. 给启动文件添加权限 4. 设置软连接 1. 基础说明 将程序设置为开机启动的方法不止一种,这里记录的,应该是最常用的一种. root用户执行命令:ll ...

  5. linux运行 netcore,linux 下netcore程序开机自动启动服务

    1.服务存放路径(/usr/lib/systemd/system/) -->新建文件(crazybuild.service) /usr/lib/systemd/system/crazybuild ...

  6. C#/WPF程序开机自动启动

    最近一个C/S项目客户要求开机自启的功能,网上找了一些方法,不顶用:最后自己去翻书,找到了这段代码,亲测可用,Wpf环境下需要改下获取程序目录的方式即可,Winform直接可用. 1 #region ...

  7. Android APP开机启动,安卓APP开发自启动,安卓启动后APP自动启动 Android让程序开机自动运行APP

    让APP在安卓系统启动自动运行可以带来以下几个好处: 用户方便:当用户打开设备时,自动启动所需的APP可以让用户更方便地使用设备,不必手动打开APP. 提高用户黏性:自动启动APP可以让用户更快地开始 ...

  8. 让Symbian应用程序开机自动启动

    首先声明:不得利用本文提供的技术制作任何手机病毒及有害软件,否则后果自负. Symbian开机自动启动的问题: 一共分为两大步,每一大步里又分为几个小步骤: 一:创建boot文件 1:http://w ...

  9. win10 linux ssh自动启动,win10子系统 wsl开机启动ssh服务

    win10子系统 wsl开机启动ssh服务 win10子系统 wsl开机启动ssh服务 一.安装ssh服务 说明:虽然已经安装了ssh服务,但是好像默认自带的不能用.所以需要先卸载再安装. 执行以下命 ...

  10. android开机自动启动app,Android实现开机自动启动Service或app的方法

    本文实例讲述了Android实现开机自动启动Service或app的方法.分享给大家供大家参考,具体如下: 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context cont ...

最新文章

  1. Caffe Windows版本的编译
  2. [老男孩笔记系列]-之linux定时任务crontab命令详解
  3. laravel中migrate的使用
  4. 10、mybatis中缓存的使用
  5. 如何将外链接向内连接转换?
  6. java quartz Scheduler 操作Trigger
  7. android 使用pdf文件大小,Android 加载PDF文件的使用
  8. 为什么不能在字符串上使用switch语句?
  9. 开机一直转圈_天气转凉,电脑早上开机也需要预热了吗?
  10. python制作无限弹窗_Python无限弹窗,开机启动,打包为exe程序
  11. 用Python实现黑客帝国代码雨效果
  12. 2022年全球程序员平均薪资发布,中国排名很意外
  13. 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
  14. 使用函数计算分段函数的值
  15. python学习笔记之序列,内含列表和元组的常用方法
  16. mysql 不重复_Mysql 查询不重复数据
  17. 托托又来了——PCA实现人脸识别
  18. Nullpoint及其相关的报错
  19. 数字化工厂实现的未来之道——工程数据数字化移交解决方案
  20. Wondershare Recovery - 万兴数据恢复专家,恢复你 Mac 上的重要文件

热门文章

  1. ChIP-seq数据处理流程(附赠长达5小时的视频指导)
  2. linux如何安装github下载的东西,Linux如何安装使用GitHub
  3. mysql怎么用迅雷下载_MySQL安装详细步骤(附迅雷下载链接)
  4. 数学建模——线性规划
  5. protues 选项卡说明
  6. Simple QQLogin 1.3(QQ2008 或更早版本)
  7. 没有基础怎么学习PLC编程?
  8. 三菱fx2n-2ad编程实例_三菱PLC编程实例,PLC控制自动成型机
  9. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.9
  10. 矩阵分析与应用(四)——逆矩阵、广义逆矩阵和Moore-Penrose逆矩阵