-1

私の友人の何人かは、終了するまでに数日間実行する必要があるニューラル ネットワーク プログラムで作業しています。

いくつかの電源の問題については、数分の間、コンピューターはノーブレークのおかげで動作し続けました. しかし、どういうわけかそれが実行中のプロセスに影響を与えたかどうかはわかりません。彼女は、今ではいくつかのファイルがプロセスによってコピーされるべきだと私に言いましたが、今のところ何もありません。

プロセスが適切に実行されているかどうかを確認するには、他に何ができるでしょうか? 私がこれまでにやったこと:

明確にするために、スクリプトはプログラムを実行するtt13.shスクリプトを呼び出します。3 つの呼び出しは、コンピューターの 3 つのコアに対して行われました。prog.shca

$ htop -u katia

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                 
 2464 katia     20   0 2059m 2.0g  624 R  99.8 26.1  28879:00 ca                                                                      
 2469 katia     20   0 2058m 2.0g  624 R  99.8 26.1  28879:04 ca                                                                      
 2459 katia     20   0 2058m 2.0g  624 R  99.5 26.1  28879:06 ca                                                                      
 2455 katia     20   0 16540 1444 1228 S   0.0  0.0   0:00.00 tt13.sh                                                                 
 2458 katia     20   0 16536 1396 1176 S   0.0  0.0   0:00.00 bash                                                                    
 2460 katia     20   0 16540 1448 1228 S   0.0  0.0   0:00.00 tt13.sh                                                                 
 2463 katia     20   0 16536 1392 1176 S   0.0  0.0   0:00.00 bash                                                                    
 2465 katia     20   0 16540 1448 1228 S   0.0  0.0   0:00.00 tt13.sh                                                                 
 2468 katia     20   0 16536 1392 1176 S   0.0  0.0   0:00.00 bash   

また:

$ lsof -p 2459
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
ca      2459 katia  cwd    DIR    8,5     4096 3670017 /tmp/program_13
ca      2459 katia  rtd    DIR    8,1     4096       2 /
ca      2459 katia  txt    REG    8,5    27897 3670034 /tmp/program_13/ca
ca      2459 katia  mem    REG    8,1  1811160  130374 /lib/x86_64-linux-gnu/libc-2.15.so
ca      2459 katia  mem    REG    8,1  1030536  130398 /lib/x86_64-linux-gnu/libm-2.15.so
ca      2459 katia  mem    REG    8,1   149312  130622 /lib/x86_64-linux-gnu/ld-2.15.so
ca      2459 katia    0w   CHR    1,3      0t0    3076 /dev/null
ca      2459 katia    1w   REG    8,5        0 5242882 /tmp/results13/251.out
ca      2459 katia    2w   REG    8,1     1059  130681 /home/katia/nohup.out
ca      2459 katia    4w   REG    8,5        0 3670036 /tmp/program_13/basi251.out (deleted)

ついに:

$ ls -l /proc/2459/fd
total 0
l-wx------ 1 katia katia 64 Jul  7 21:47 0 -> /dev/null
l-wx------ 1 katia katia 64 Jul  7 21:47 1 -> /tmp/results13/251.out
l-wx------ 1 katia katia 64 Jun 17 19:00 2 -> /home/katia/nohup.out
l-wx------ 1 katia katia 64 Jul  7 21:47 4 -> /tmp/program_13/basi251.out (deleted)

その「削除された」とはどういう意味ですか?また、プロセスの状態を確認するにはどうすればよいですか?

他のアイデアはありますか?

ありがとう!

4

1 に答える 1

1

プログラムのソースがあり、プログラムがデバッグ情報付きでコンパイルされている場合は、gdb -p pid /path/to/executable. これにより、プログラムの内部状態が期待どおりかどうかを確認できます。満足したらプロセスから切り離すことができ、中断したところから実行を再開します。

「削除された」ファイルについては、UNIX と Linux では完全に合法でありopen、新しい一時ファイルとして非常に一般的であり、すぐunlinkに削除されます。ファイル システムの inode の仕組みにより、プロセスがファイルを開いている限り、ファイルは存在し続けます。ただし、アクセスできるディレクトリ エントリはありません。その開いているファイル ハンドルでのみ使用できます。プロセスがファイルを閉じる (またはプロセスが終了する) と、ファイルの内容も消えます。

于 2013-07-08T01:12:38.937 に答える