【问题标题】:Nohup: can't detach from consoleNohup:无法从控制台分离
【发布时间】:2014-07-16 21:49:45
【问题描述】:

我有一个 bash 脚本,它可以在 Linux 和 Mac OS X 中运行。脚本的一个特定行在 Linux 中可以正常工作,但在 OS X 中却不行。

nohup <utility> <arg> > output.txt 2> error.txt </dev/null &

当 bash 脚本在 Linux 中运行时,它就像一个魅力。但是,在 OS X 中运行 bash 脚本,我得到了错误

nohup: can't detach from console: Inappropriate ioctl for device

我进行了大量搜索,但没有找到合适的答案来解释为什么会这样。

执行脚本在&lt;utility&gt; 之前很久就退出了,这就是为什么(据我所知)我需要使用nohup。但是,我已经进行了一些测试,从 bash 脚本的行中删除 nohup 似乎可以解决问题,因为两个系统上的实用程序都会启动,并且即使在脚本退出后也会继续运行。

【问题讨论】:

  • 你是在普通终端运行脚本吗?
  • 您是在tmuxscreen 会话中运行它吗?这些与nohup 交互时存在一个已知错误。补丁可用于修复错误。
  • @KristerAndersson 该脚本由STAF自动化执行。
  • @MarkPlotnick 没有 tmux 或屏幕会话
  • 如果STAF automation,如tmuxscreen,调用daemon()从终端分离,运行nohup时可能会遇到同样的问题。 github.com/ChrisJohnsen/tmux-MacOSX-pasteboard 中描述了一种解决方法;编译reattach-to-user-namespace程序然后运行reattach-to-user-namespace nohup ...

标签: linux macos bash nohup


【解决方案1】:

试试这个:

nohup <utility> <arg> > output.txt 2> error.txt >/dev/null &

【讨论】:

  • 经过测试。不去。不过,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2017-03-18
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多