Linux init 脚本 0<&- &> 实现了什么

Chr*_*rds 8 linux bash io-redirection

我正在考虑编写自己的init.d脚本来控制在我的Linux服务器上运行的多个服务。我在网上遇到了一个例子,其中包含:

nohup $EXEC_SCRIPT 0<&- &> $LOG_FILE & echo $! > $PID_FILE
Run Code Online (Sandbox Code Playgroud)

据我了解:

  • nohup捕捉hangup信号
  • $EXEC_SCRIPT 是一个包含要运行的命令的变量
  • 0<&- &> 以前没有遇到过这个
  • $LOG_FILE类似于$EXEC_SCRIPT但包含日志文件路径
  • &开始$LOG_FILE在后台登录?
  • $! 是最后一个后台命令的PID
  • >写结果$!$PID_FILE

我可以用这些知识来解决它,但这0<&- &>完全让我失望。我不喜欢首先包含我至少部分不理解的东西。

cho*_*oba 9

这些是重定向。

  • 0<&- 关闭文件描述符 0(标准输入)。
  • &> 重定向 stdout 和 stderr(在本例中重定向到日志文件)

你肯定有没有为echo之前$!$!将被解释为命令并且很可能导致

-bash: 18552: command not found
Run Code Online (Sandbox Code Playgroud)