/bin/sh -c 的作用
背景#
在kubernetes的yaml文件的command字段中,经常使用sh -c的形式:
command: ["/bin/sh", "-c", "echo postStart... > /usr/share/nginx/html/index.html"]
那么,/bin/sh -c 是什么意思呢?为什么不直接使用 echo 命令?
那是因为命令解释器(这里是/bin/sh) 有两种工作模式:交互模式和非交互模式。
1. 交互模式#
交互模式如下图所示,就是使用 ssh 连接到 Linux 服务器上,然后在终端上敲入命令就可以显示对应结果。这样与终端进行交互执行命令的方式就称为交互模式。
2. 非交互模式#
非交互模式如下图所示,非交互模式就是调用 bash 解释器,通过 bash -c 后接命令的形式来解释执行命令。
而在 kubernetes 的 yaml 文件中,command 字段(底层也就是 golang 程序) 显然需要使用非交互模式,通过命令解释器来执行命令,而不是通过ssh登录之后与终端交互。
在影响权限上的区别可以参照:https://blog.csdn.net/BobChill/article/details/84647575
分类:
Linux
, Kubernetes
标签:
Linux系统
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2020-05-28 word怎么删除页眉横线
2019-05-28 IntelliJ IDEA详细配置和使用(Java版)