`
virues
  • 浏览: 72540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux的开机启动项

 
阅读更多
[b]linux的开机启动项命令 ntsysv   累windows的 msconfig命令[/b]

假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc.d/init.d


[b]1. 关于linux的启动
2. 关于rc.d
3. 启动脚本示例
4. 关于rc.local
5. 关于bash启动脚本
6. 关于开机程序的自动启动
[/b]


1. 关于linux的启动
init是所有进程之父
init读取/etc/inittab,执行rc.sysinit脚本
(注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中)
rc.sysinit脚本作了很多工作:

init $PATH
config network
start swap
set hostname
check root file system, repair if needed
check root space
....

rc.sysinit根据inittab执行rc?.d脚本
linux是多用户系统,getty是多用户与单用户的分水岭
在getty之前运行的是系统脚本

2. 关于rc.d
所有启动脚本放置在 /etc/rc.d/init.d下
rc?.d中放置的是init.d中脚本的链接,命名格式是:
S{number}{name}
K{number}{name}
S开始的文件向脚本传递start参数
K开始的文件向脚本传递stop参数
number决定执行的顺序

3. 启动脚本示例

这是一个用来启动httpd的 /etc/rc.d/init.d/apache 脚本:

代码:
#!/bin/bash

source /etc/sysconfig/rc
source $rc_s

case "$1" in
        start)
                echo "Starting Apache daemon..."
                /usr/local/apache2/bin/apachectl -k start
                evaluate_retval
                ;;

        stop)
                echo "Stopping Apache daemon..."
                /usr/local/apache2/bin/apachectl -k stop
                evaluate_retval
                ;;

        restart)
                echo "Restarting Apache daemon..."
                /usr/local/apache2/bin/apachectl -k restart
                evaluate_retval
                ;;

        status)
                statusproc /usr/local/apache2/bin/httpd
                ;;
               
        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

可以看出他接受start,stop,restart,status参数

然后可以这样建立rc?.d的链接:

代码:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/apache ../rc0.d/K28apache &&
ln -sf ../init.d/apache ../rc1.d/K28apache &&
ln -sf ../init.d/apache ../rc2.d/K28apache &&
ln -sf ../init.d/apache ../rc3.d/S32apache &&
ln -sf ../init.d/apache ../rc4.d/S32apache &&
ln -sf ../init.d/apache ../rc5.d/S32apache &&
ln -sf ../init.d/apache ../rc6.d/K28apache



4. 关于rc.local

经常使用的 rc.local 则完全是习惯问题,不是标准。
各个发行版有不同的实现方法,可以这样实现:

代码:
touch /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
ln -sf /etc/rc.d/rc.local /etc/rc.d/rc1.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local /etc/rc.d/rc2.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local /etc/rc.d/rc3.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local /etc/rc.d/rc4.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local /etc/rc.d/rc5.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local /etc/rc.d/rc6.d/S999rc.local



5. 关于bash启动脚本

/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
是bash的启动脚本

一般用来设置单用户的启动环境,也可以实现开机单用户的程序,但要明确他们都是属于bash范畴而不是系统范畴。

他们的具体作用介绍如下:

/bin/bash这个命令解释程序(后面简称shell)使用了一系列启动文件来建立一个运行环境:

/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
~/.bash_logout
每一个文件都有特殊的功用并对登陆和交互环境有不同的影响。
/etc/profile 和 ~/.bash_profile 是在启动一个交互登陆shell的时候被调用。
/etc/bashrc 和 ~/.bashrc 是在一个交互的非登陆shell启动的时候被调用。
~/.bash_logout 在用户注销登陆的时候被读取

一 个交互的登陆shell会在 /bin/login 成功登陆之后运行。一个交互的非登陆shell是通过命令行来运行的,如[prompt]$/bin/bash。一般一个非交互的shell出现在运行 shell脚本的时候。之所以叫非交互的shell,是因为它不在命令行上等待输入而只是执行脚本程序。


6. 关于开机程序的自动启动
系统脚本可以放置在/etc/rc.d/init.d中并建立/etc/rc.d/rc?.d链接,也可以直接放置在/etc/rc.d/rc.local中。
init.d脚本包含完整的start,stop,status,reload等参数,是标准做法,推荐使用。
为特定用户使用的程序(如有的用户需要使用中文输入法而有的不需要)放置在~/中的bash启动脚本中。
分享到:
评论

相关推荐

    linux添加开机启动项.docx

    linux添加开机启动项.docx

    重装win7找回linux启动项的方法

    重装win7找回linux启动项的方法

    Arm-linux 自定义开机启动程序,避开从桌面启动

    - [Linux开机启动服务设置](http://www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.html) - [Linux系统启动过程详解](http://linux.chinaunix.net/techdoc/install/2006/03/10/928782.shtml) - [Linux开机启动...

    Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例)

    在Linux(CentOS7)操作系统中安装Apache Tomcat并将其设置为开机启动是一项常见的任务,特别是在部署Java web应用时。本篇文章将详细讲解如何在CentOS7上安装Tomcat8并将其配置为自启动服务。 首先,我们来了解...

    debianlinux系统开机启动项管理.pdf

    Debian Linux 系统开机启动项管理 Debian Linux 系统的开机启动项管理是指在系统启动时,执行各种初始化和设置操作的过程。该过程涉及到多个关键脚本和配置文件,以下是 Debian Linux 系统开机启动项管理的知识点...

    linux添加开机启动项的方法介绍.docx

    Linux 添加开机启动项的方法介绍 本文档主要介绍了Linux添加开机启动项的多种方法,包括使用chkconfig命令、在~/.bash_profile文件中添加启动项、在/etc/rc.local文件中添加启动项、使用crond守护程序实现周期性...

    修改ubuntu开机启动项顺序 grub设置 删除多余内核

    修改 Ubuntu 开机启动项顺序 GRUB 设置删除多余内核 GRUB(Grand Unified Bootloader)是 Ubuntu 中的开机引导程序,它负责在系统启动时加载操作系统。GRUB 的配置文件是 `/boot/grub/grub.cfg`,该文件定义了开机...

    linux中mysql开机自动启动3种方法.docx

    这三个命令分别将 MySQL 服务脚本复制到 `/etc/init.d/` 目录下,添加 MySQL 服务到系统启动项中,并将其设置为在系统启动时自动启动。 方法二:使用 mysqldauto 启动脚本 第二种方法是使用一个名为 mysqldauto 的...

    多系统开机启动项修复

    然而,随着系统的增加,开机启动项管理变得复杂,尤其是当系统重装后,可能出现开机启动项丢失或选择项消失的问题。在这种情况下,"多系统开机启动项修复"就显得尤为重要。 标题中提到的"多系统开机启动项修复"是指...

    linux开机启动资料

    这份“linux开机启动资料”应该包含了一系列关于这一主题的文档、教程或者脚本,旨在帮助学习者深入理解Linux启动过程的细节。下面,我们将详细探讨Linux开机启动的相关知识点。 首先,Linux的启动流程可以分为几个...

    linux 开机启动

    Linux开机启动是一个涉及多个阶段的复杂过程,主要包括系统引导、硬件初始化、服务启动以及用户交互界面加载等步骤。在Linux系统中,自启动程序的管理是一项基础而重要的工作,它涉及到系统启动时的自动运行程序、...

    Linux一键启动多个jar

    在Linux环境中,管理和操作多个Java应用程序(通常以.jar文件的形式存在)是一项常见的任务。本文将详细探讨如何通过编写脚本实现一键启动、停止和重启这些.jar文件,以提高工作效率。 首先,我们需要理解“Linux...

    Linux 添加系统服务、设置开机启动、设置启动顺序、chkconfig.docx

    这是推荐的方法,有些 Linux 不支持在服务脚本注释中添加注释 #chkconfig: 2345 64 36,64 代表启动顺序,36 代表关闭顺序,2345 代表 chkconfig –list 中的 2345 项打开。 方法(二):修改 /etc/rc.d/rc.local ...

    御掉LINUX前,WINDOWS开机启动项恢复

    一般情况下,在windows下装LINUX后想御去LINUX,直接将安装分区格式化是不明智的,因为那样有可能致使机器无法开机引导,最终难逃重装系统的厄运(有系统安装盘的除外)。这个工个可以在格式化LINUX安装分区前将系统...

    debian系统开及启动项管理

    Debian 系统开机启动项管理是指在 Debian Linux 系统中,管理开机启动项的过程。这包括了解 Linux 的启动过程、关键启动脚本的书写规则,以及如何管理开机启动项。 关于 Linux 的启动 Linux 的启动过程可以分为两...

    开机自启动

    - 可以使用第三方工具,如Windows的CCleaner,Mac的OnyX,或Linux的Starter,这些工具提供直观的界面来查看和管理开机启动项。 - 或者直接通过系统内置的工具,如Windows的任务管理器,macOS的活动监视器,以及...

    linux开机进入命令行模式

    4. **使用rcconf工具**:通过`sudorcconf`命令打开rcconf工具,从中可以设置开机启动项,将GDM服务从启动列表中移除。 #### 六、快速切换至命令行界面 即使系统默认启动到图形界面,也可以通过快捷键`Ctrl+Alt+F2`...

    android 开机启动

    在Android系统中,开机启动(Bootup)是一个复杂的过程,涉及到多个组件和阶段。下面将详细阐述Android系统从按下电源键到系统完全启动的过程,以及如何进行开机启动优化。 一、Android开机流程 1. 上电自检 ...

    centos7开机自启动执行脚本

    可以使用`systemctl list-unit-files | grep enabled`查看所有已启用的开机启动服务,或者用`systemctl status my_script.service`检查特定服务的状态。 5. **注意事项** - 确保你的脚本具有执行权限:`chmod +x ...

    程序 开机启动

    2. **Linux开机启动**: - **rc.d**: 对于传统的init系统,配置文件位于`/etc/rc.d`目录下,通过运行级别(runlevel)来决定哪些服务启动。 - **systemd**: 现代Linux发行版通常使用systemd,服务配置文件位于`/...

Global site tag (gtag.js) - Google Analytics