找回密码
 注册
首页 ≡≡网络技术≡≡ 服务器 #!bin/sh\nexit 0“> /usr/sbin/policy-rc.d‘做什么? ...

linux #!bin/sh\nexit 0“> /usr/sbin/policy-rc.d‘做什么?

灰儿 2024-2-19 19:32:44
在对一个失败的Docker部署进行故障排除时,我注意到这一行位于Dockerfile中。下面这一行到底是做什么的?
  1. #!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
复制代码

这段代码有四个组件:

1)。#!/bin/sh是一个"shebang“,指向运行后续代码的特定解释器。在本例中,shebang之后的代码被发送到Sh,这很可能是Bash (可能是最常见的Linux )。

2)。\n是定义换行符的一个特殊字符。

3)。exit 0在脚本中用于定义它的结束方式。通常,退出代码为零意味着程序成功完成(并不总是正确的,所以请记住这一点)。

4)。>是一个Linux重定向。有几个操作符可以操作Stdin、Stdout和Stderr。在这种情况下,Stdin (操作符左边)的结果被发送到一个文件(由操作符右侧的文件名定义)。这就是更新特定文件的方式。

假设这是Debian/Ubuntu发行版,如果守护进程刚刚安装/升级,policy-rc.d将确定它是否启动/重新启动。它通过读取退出代码来做到这一点,因此在本例中,"0“意味着自动启动是可以的。

通常,在着色环境中,此退出代码设置为101,以防止启动守护进程。


如果你一定要启动/停止服务,可以将 /usr/sbin/policy-rc.d 文件中的返回值改为0。

0 - action allowed
1 - unknown action (therefore, undefined policy)
100 - unknown initscript id
101 - action forbidden by policy
102 - subsystem error
103 - syntax error
104 - [reserved]
105 - behaviour uncertain, policy undefined.
106 - action not allowed. Use the returned fallback actions
(which are implied to be “allowed”) instead.


您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。