2013-07-08 126 views
-1

我的一些工作是在一个神经网络程序中工作,它必须在其结束之前运行几天。Linux进程是否正在运行?

对于一些功率问题,在fem分钟,电脑保持运行,由于没有休息。但是,我不知道是否影响了运行过程。她告诉我,现在有些文件应该被流程复制,但目前为止还没有。

我想知道,我还能做些什么来检查过程是否正常运行?我到目前为止所做的:

为了澄清,脚本tt13.sh调用运行程序ca的脚本prog.sh。这三个电话是针对三个电脑的内核进行的。

$ 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) 

什么是 “删除” 的意思?另外,我能做些什么来检查流程健康?

还有其他想法吗?

谢谢!

+0

如果您的计算机不受备份电源引起的电源故障的影响,则程序状态正常! – jman

回答

1

如果您有该程序的源代码,并且该程序是使用调试信息编译的,则可以使用gdb -p pid /path/to/executable附加到该程序。有了这些,你可以四处探索,看看程序的内部状态是否符合你的期望。一旦您满意,您可以从流程中分离出来,并在停止执行的地方继续执行。

至于“删除”文件:在UNIX和Linux中,它是完全合法的,并且相当普遍open是一个新的临时文件,然后立即unlink它。由于文件系统inode的工作原理,只要进程打开文件,文件就会一直存在。但是,它不会有一个目录条目,通过它你可以达到它;它只会被该打开的文件句柄提供。当进程关闭文件(或进程退出)时,文件的内容也会消失。

相关问题