Linux开机启动rc.local不执行分析

在linux中我们常常在/etc/rc.local写入执行命令或脚本,来实现系统开机启动功能。但偶尔也会遇到没有执行的情况,这时候就要来进行调试了。

以下就是调试步骤:

1、确定rc.local具有可执行权限,直接/etc/rc.local看看能不能执行。因为rc.local中已经写明了“In order to enable or disable this script just change the executionbits.”, 要让它生效只需要改变它的执行位。

2、看看当前系统的runlevel,再去对应rcX.d看看它的启动顺序,是不是有Src.local的启动项在这里面。

3、确认了前面两项,我们就可以来调试rc.local的内容了,首先第一行,默认一般是#!/bin/sh -e,查下shell编程就知道,这个是用的sh解释器,-e参数代表出错后直接退出不执行后面内容。

#!/bin/sh  -e
echo yes
ls /
echo no
ls /ahfjkasf
echo hahaha

执行以上内容就会发现,hahaha是不会打印的。同时我们也要确认ls -l  /bin/sh,来确认sh是对应的哪个解释器,因为在ubuntu中,sh是链接在dash上。

因此在确认我们使用的SHELL解释器后,可以将-e 改成 -x或是在第二行加入set -x,这样就能将整个rc.local的执行过程打印到syslog中了,然后去查找出错的原因。

在执行某些脚本使用普通的重定向可能不生效,可以试试1 >>/tmp/xxx.log 2>&1这样的格式。

时间: 2024-10-03 21:54:19

Linux开机启动rc.local不执行分析的相关文章

centos7 开机/etc/rc.local 不执行的问题

centos7 开机/etc/rc.local 不执行的问题 背景: 最近客户那边新上一台server,系统是Centos7, 我写个开机执行脚本. 发现的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd service

centos7 开机/etc/rc.local不执行命令的问题

centos7 开机/etc/rc.local 不执行的问题 公司现在要求线上的服务器统一使用centos7,最近发现centos7 的/etc/rc.local不会开机执行,认真看了下/etc/rc.local文件内容的就发现了问题的原因了. [[email protected] ~]# cat /etc/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable

centos7 开机/etc/rc.local 不执行的问题(转载)

最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using thi

linux开机启动任务和定时执行任务 crontab

os主要有单用户单任务.单用户多任务.多用户多任务几种类型.在多用户多任务操作系统中,对每个用户运行环境的设置就十分重要. 一.开机自启动任务. 我们首先要明确开机自启动是个什么概念.开机自启动的任务主要在两个时间点发生,一个是用户没有登陆之前,系统正在启动的过程中,另一个是用户成功登陆之后(即通过登陆界面输入用户名密码登陆之后). 1.在用户登陆之前,系统启动过程中自动启动任务 基础知识了解:系统启动过程中,内核被加载后,执行的第一个程序是/sbin/init,init程序会读取inittab

CentOS rc.local 不执行的问题

centos7 开机/etc/rc.local 不执行的问题 时间:2015-02-09 00:54来源:blog.51cto.com 作者:“闲潭小筑” 博客, 举报 点击:次 最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to c

Linux开机启动文件rc.local无法执行怎么办?

rc.local是Linux系统中的一个重要的开机启动文件,每次开机都要执行这个文件.但是有一些用户的Linux系统无法执行这个文件,并导致了一系列的问题.遇到这个问题我们应该怎么办呢? 在Linux系统中,有一个重要的开机自动启动脚本文件: /etc/rc.local--->/etc/rc.d/rc.local 不小心删除了,然后重新创建了一个,但问题出来了,无法自动执行了. 原因: 开机启动的/etc/rc.d/rc3.d/ 文件夹下的链文件失去效应了,修改下即可. 解决方法: 把/etc/

解决linux下/etc/rc.local开机器不执行的原因

前不久因项目需要写了开机启动其他程序的shell脚本,因工作忙,调试完给了技术支持人员,也没去注意过. 到后来,有几台服务器突然被重启了,这时候领导问,怎么开机启动的脚本没起作用,还被批了一顿,哎,做事虎头蛇尾,活该! 然后去查,一直没查到原因, 手动执行都是正确的,在排除了权限原因和脚本问题后,很郁闷,怎么放到开机启动项目中就无法执行了呢. 于是去查linux开机启动过程信息.google下,看了下关于一些开机启动启的资料,发现了开机启动程序的级别为3. 果断顺藤莫瓜,找到了这个目录 /etc

Linux树莓派中/etc/rc.local不执行的问题

最近研究在树莓派中嵌入式开发java程序,并打算和Salesforce进行通信.需要开发一个java的web server,不想弄那么复杂,于是打算在linux系统中/etc/rc.local写想要执行的语句,比如java –jar /root/test.jar.但是在开机的时候,发现/etc/rc.local里面的命令并没有执行,这是个头疼的事情.第一次我考虑到的是,可能在里面的某些语句,比如service isc-dhcp-server start.这类开启服务的语句,如果dhcp服务在ho

linux开机启动

开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了.在BIOS将系统的控制权交给硬盘第一个扇区之后,就