【问题标题】:AIX script hangs when using /dev/null > 2>&1使用 /dev/null > 2>&1 时 AIX 脚本挂起
【发布时间】:2015-12-14 14:48:50
【问题描述】:

我试图在 AIX 中运行一个脚本以在远程服务器上执行另一个脚本。除了远程脚本,我还需要将stdout 发送到/dev/null。相同的命令在另一台服务器上运行良好,但是当我在当前服务器上运行时它挂起,有什么建议吗?

su - test -c "rsh testserver /scripts/testme" 2>&1 >/dev/null1

【问题讨论】:

  • 先不带su试试... rsh也过时了,用ssh: ssh testserver 'sh -xv /scripts/exec >/tmp/remote.log.$$ 2>&1'
  • 感谢您的建议。这工作正常,但我需要以另一个用户身份运行。我还需要 /dev/null 来禁止为特定用户设置的菜单并运行脚本。澄清一下:通常用户会登录并看到一个包含三个选项的菜单。我需要抑制它并运行脚本
  • 这很酷,但您仍然需要逐步找到问题所在。慷慨地使用日志/调试/详细选项;如果要重定向输出,请将其重定向到文件,而不是 /dev/null。如果您不想与远程脚本交互,您可能想尝试使用 ssh-option -T/-n。

标签: scripting aix su rsh


【解决方案1】:

在您的评论中,您写道用户登录时会显示一个菜单。
假设这是在 .profile 文件中使用 echoes 和读取命令完成的。
出现菜单时,重定向输出不会跳过菜单代码中的read 命令。菜单仍在等待您的输入,并且 su 命令似乎挂起。

您能否更改您的.profile 或.bashrc 以便在使用su 命令调用时跳过显示菜单?在启动过程中调用这个时,您可以查看tty 的返回码。当您从命令行使用 su 命令时,您应该寻找另一种解决方案。 当您的 root shell 是 ksh 时,您可以尝试以下操作:

if [[ "$(ps -fp $$)" != *"-ksh -c "* ]]; then
   echo "Now I should call the Menu"
fi

【讨论】:

  • 感谢您的回答,我会试一试。但我设法解决了这个问题。似乎我的 inetd.conf 文件中有错误。在我编辑后它起作用了。
猜你喜欢
  • 1970-01-01
  • 2016-05-20
  • 2012-05-17
  • 2021-12-02
  • 1970-01-01
  • 2013-07-19
  • 2018-05-11
  • 1970-01-01
相关资源
最近更新 更多