nohup
我有一个关于在会话中使用的问题ssh
。在三年多的时间里,我的 java 软件每天使用远程 ssh 会话执行以下命令:
cd some_path; chmod 777 script.sh; ./script.sh
脚本的内容是:
nohup java java_command parameters &
它非常简单并且在红帽机器上始终运行完美。
在使用相同环境的新软件安装中,该命令不起作用。如果我从任何远程 ssh 会话手动执行它,它也不起作用。但是,如果我更改 的内容script.sh
,删除nohup
和&
,则该命令可以正常工作。
可能是什么问题? ssh 设置相同。我发现的唯一区别是在新安装中和在原始安装中是不同umask
的。0012
0022
附加信息:原始安装是 RHEL 5.4,新安装是 RHEL 6.3。 6.3版本默认限制更多吗?
答案1
您的登录 shell 已更改吗?
尝试一下。编辑您的脚本并更改nohup
为/usr/bin/nohup
.
它可能是解决方案的原因是登录 shell(例如 C shell)有自己的“nohup”版本。 C shell(或 tcsh)nohup 接受命令,但不接受命令参数。另一方面,/usr/bin/nohup 可以接受一个命令和一个可选的命令参数,这就是您使用 nohup 的方式。