首页 文章

linux:确定正在运行的init.d脚本是否作为系统启动序列的一部分执行

提问于
浏览
1

我正在编写一个init.d脚本,如果在系统启动时执行它,它应该运行具有某些选项的命令 . 如果用户手动执行脚本,则相同的脚本应该使用其他选项运行命令 .

例如,在网络脚本中,如果它在系统启动时运行,则根据是否应将它们配置为ONBOOT,将不会启动某些网络接口 . 否则,如果用户手动运行网络脚本(服务网络启动),则将启动所有网络接口 .

我可以实现此目的的一种方法是从父rc脚本创建一个名为“/tmp/.boot”的文件,该文件在执行所有启动脚本后被删除 . 然后在init脚本中检查文件/tmp/.boot是否存在,以确定脚本是否作为启动序列的一部分运行 .

我想知道是否有任何现有方式知道系统处于启动顺序 . / proc /或其他地方的某些东西能告诉我系统处于启动顺序吗?

期待您的建议 .

谢谢和问候〜萨梅尔

1 回答

  • 0

    首先,/ proc中的状态对于许多脚本而言应该没那么大 . 运行级别指示您是否处于早期启动阶段( runlevel 允许访问它),但是在启动中期,启动运行级别S保持不变 .

    但是,这并不是一件坏事,并且尝试编写根据运行级别修改行为的脚本是邪恶的 . Undebugable . 您可以简单地尝试其他命令行参数,例如“start-all”而不是“start” . 或者你像Debian那样分开RC脚本 .

相关问题