2013-07-18 140 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

我的過程也是現在的內存駐留。另外它也在後臺運行。唯一的問題似乎是國家大部分時間都在睡覺。 –

相關問題