2013-07-18 82 views
1

问题: 我在32GB RAM的服务器上运行3个java进程。由于网络问题,我经常遇到封闭的ssh会话。所以,我运行命令使用
nohup bash script.sh> log-file 2>在睡眠状态下使用nohup进程运行

现在我正在运行使用nohup的进程,另外我将它们放在后台。但是,经过2-3个小时的处理后,我的java进程停止写入日志文件。我检查了/proc/pid/status。它表明这个过程正在睡觉,但实际上这不应该发生在我的情况。当我使用top时,它不会在顶级进​​程列表中显示我的进程。

我的问题是如何知道等待过程背后的原因? 当我使用top检查freemem时,它显示在32GB空间之外,正在使用30 GB,只有2 GB是空闲的。这意味着我的过程是活着的,占用空间但没有运行。

顺便说一下,我的服务器使用nfs服务器挂载我的家庭和数据,我们使用kerberos进行身份验证。所以,这可能是一个问题?我正在为即将到期的kerberos票使用krenew命令。

回答

0

也许你应该设置3个java procs作为守护进程运行,而不是使用挂断。

+0

如何运行它作为守护进程比使用nohup运行它更有利? –

+0

作为守护进程,当您初始化机器时,守护进程将始终保持内存驻留并在后台运行。 nohup是不可靠的,这是一个实用程序,设计早在1970年代,当使用拨号300bps调制解调器:) –

+0

我的过程也是现在的内存驻留。另外它也在后台运行。唯一的问题似乎是国家大部分时间都在睡觉。 –

相关问题