Linux系统中关于/etc/rc.d/rc.local中部分命令不执行的问题

2023-11-07

最近遇到了个奇怪的问题。费了一番周折才最终解决。在此给遇到类似问题的同学提供一条思路。

在Linux系统中我们有可能需要某些命令在系统启动的时候自动运行。此时我们会想到利用文件:/etc/rc.d/rc.local

按照正常逻辑,只需要将相应的shell命令写入该文件,下次系统启动就会自动执行这些命令。然而事情往往没有这么顺利。

大部分人遇到的问题是rc.local里面的命令都不执行。这个通常是因为没有赋予该文件可执行权限。一条命令'chmod +x /etc/rc.d/rc.local'就可以解决问题。

而这次我遇到的问题是rc.local文件里面部分命令运行了,部分(httpd -k start)没有运行。引起这个问题的是多种原因。下面列举两个:

1. 命令没有使用绝对路径。

2. SELinux阻止了该命令的运行。

第一中情况容易解决。第二种要麻烦一些。我们可以通过查看系统log。例如:CentOS7, /var/log/messages 文件中,会发现类似下面的log:

SELinux is preventing /usr/sbin/httpd from append access on the file......

这时,可以查看SELinux相关log。其路径通常在/var/log/audit下面。

audit.log  audit.log.1  audit.log.2  audit.log.3  audit.log.4  

直接阅读比较难懂我们可以通过运行:sealert -a audit.log (没有sealert命令的可以通过yum install setroubleshoot安装)

经过解析可以获得更加具体的信息,如:

SELinux is preventing /usr/sbin/httpd from write access on the file 83b1a642e5418ddb34687eb7571913ce63e1f0b4.
 

为了去除SELinux对rc.local的干扰。我们可以在运行命令前停掉SELinux.

/usr/sbin/setenforce 0 

在运行命令后在将SELinux起来。

/usr/sbin/setenforce 1

可以通过getenforce来查看SELinux有没有运行。

[root@centos7 audit]# getenforce
Enforcing
 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux系统中关于/etc/rc.d/rc.local中部分命令不执行的问题 的相关文章

  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • 如何在线程创建和退出时调用函数?

    include
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu

随机推荐

  • Vue+Flask+Mysql 项目实战

    写在前面 花了几天跟女友一起撸了个前后端分离项目 之前我是搞的算法 这算是第一个正式负责后端的项目 这个项目里边我是负责算法 后端 这篇文章是用来记录一下中间收集到的资料的 一 项目介绍 做的是一个在线图像修复网站 可以实现局域网内访问 主
  • 吸水间最低动水位标高_对《消水规》关于消防水池最低有效水位确定的理解

    消防水池是人工建造的供固定式或移动式消防水泵吸水的储水设施 根据 消防给水及消火栓系统技术规范 GB 50974 2014第4 3 9条规定 消防水池的出水管应保证消防水池的有效容积能全部被利用 消防水池的有效水深是设计最高水位至消防水池最
  • [1175]hive函数greatest、least多列取最大最小值

    文章目录 greatest函数 least函数 用多了 max min 今天刚好遇到了需要取连续6年中营收最大的逻辑 6列 greatest函数 取多列最大值 select greatest 99 0 73 73 存在 null 或者字符串
  • ld.exe: cannot find -l?eclipse上用C/C++时,如何链接静态库?

    对g 和静态库不熟悉的人可能会搞不清楚问题所在 因为我自己在网上很久找不到直接的解决方案 为了方便各大g 初学者学习 我将我的犯错经历和解决办法写在这里 节约时间 可以直接看最后的结果 犯错和解决经历 学习socket的使用的时候 想自己在
  • Canvas 原生实现图片涂抹打马赛克功能

    先看效果 上图是一段打码过后的代码截图 简单说一下实现思路 就是通过创建多个canvas 一个用来绘制原图 一个用来绘制全马赛克图 一个用来绘制笔迹或者叫打码的区域 最后一个canvas用来将三个canvas绘制到一个canvas之上 主要
  • 关于解决IDEA中git的commit无效的解决方法

    关于解决IDEA中git的commit无效的解决方法 在开发中我们偶尔会遇到点击idea中commit无效的情况 点击完commit后 进度条一闪而过缺没有将代码提交上去 下面是本人总结的几种方法 一 重启IDEA 重启大法 俗话说的好 重
  • 算法与数据结构技术书籍从入门到进阶推荐适合大神小白附技术书阅读方法论【附网盘链接】

    转载自某大佬博客 https pymlovelyq github io 2018 10 06 Algorithm 前言 技术书阅读方法论 一 速读一遍 最好在1 2天内完成 人的大脑记忆力有限 在一天内快速看完一本书会在大脑里留下深刻印象
  • ubuntu安装英伟达显卡驱动

    文章目录 1 通过PPA安装 2 手动安装 3 通过ubuntu官方方法安装 4 相关命令 1 通过PPA安装 1 卸载系统里低版本的英伟达驱动 sudo apt get purge nvidia 2 把显卡驱动加入PPA sudo add
  • redis 五种数据类型的底层数据结构

    为了拿捏 Redis 数据结构 我画了 40 张图 完整版 Redis 数据结构并不是指 String 字符串 对象 List 列表 对象 Hash 哈希 对象 Set 集合 对象和 Zset 有序集合 对象 因为这些是 Redis 键值对
  • Docker安装RabbitMQ

    1 首先确保自己的虚拟机安装了Docker环境 可以通过docker v 查看自己的docker是否安装了 docker v Docker未安装可以通过下面的教程安装Docker CentOS7安装Docker教程 2 通过命令安装Rabb
  • 现代文翻译成古文_把现代文翻译成古文诗词,太雅致了!

    1 今文 身不由己古译 向来心是看客心 奈何人是剧中人 2 今文 我们越来越陌生了古译 相達何必曾相识 再看君卿已陌路 3 今文 我也不想你 你也就别想我了 古译 我断不思量 你莫思量我 4 今文 物是人非 我们回不去了 古译 柳絮随风各西
  • 关于计算机视觉中的深度信息概念

    引用 https blog csdn net a1059682127 article details 80503378 https www zhihu com question 406919125 answer 1338670936 单独使
  • kettle抽取数据中文乱码

    kettle如何解决也有一两篇谈到在建数据库连接时加characterEncoding来解决 在kettle中 数据链接中添加属性 数据源和目标 都要添加
  • 使用Vue创建一个商品展示首页

    使用Vue创建项目实现一个商品展示首页 在这篇博客中 我们将使用Vue来创建一个简单的商品展示首页 我们已经有一个后端API提供了商品信息 接口地址为 http localhost 8080 api products 返回的数据格式是JSO
  • C++猜数字小游戏-通过循环实现

    C 猜数字小游戏 通过循环实现 题目 系统随机生成一个1到100之间的数字 玩家进行猜测 如果猜错提示玩家数字过大或过小 如果猜对恭喜玩家胜利 并且退出游戏 每局游戏只能猜5次 实现 通过循环和if判断 源码 include
  • 基于SUSAN算法的边缘检测方法研究(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 SUSAN算子原理 1 2 SUSAN边缘检测算法 2 运行结果 3 Ma
  • Temporary failure in name resolution

    在启动nexus war包时出现以下提示错误 2016 05 04 13 50 12 ERROR main net sf ehcache Cache Unable to set localhost This prevents creatio
  • 路径搜索问题

    之前碰到的很多问题都可以归结为路径搜索问题 就是求两点之间的路经 1 是否存在路径 2 求任意一条路径 3 求所有路径 求是否有路径和任意一条路径的时候 和正常遍历一样 一个点被mark之后不再访问 因为如果这个结点到终点有路径 之前就应该
  • Word里如何打出带有上下横杠的大写字母i

    换成新罗马就行了
  • Linux系统中关于/etc/rc.d/rc.local中部分命令不执行的问题

    最近遇到了个奇怪的问题 费了一番周折才最终解决 在此给遇到类似问题的同学提供一条思路 在Linux系统中我们有可能需要某些命令在系统启动的时候自动运行 此时我们会想到利用文件 etc rc d rc local 按照正常逻辑 只需要将相应的