【需求背景】:在Linux上执行一个Matlab程序,多个用户在同一个账号下同时启动了多个Matlab程序。运行一段时间后 如果想终止其中的某个进行 需要kill掉,但是kill掉哪一个呢?利用Top指令显示的结果是:
PID USER … COMMAND
6853 jackey … /media/workOne/matlab/bin/glnxa64/MATLAB
通过COMMAND已经服务区分多个进程了,因而我们需要在启动进程时打出此进程号。比较笨的方法是自己拿纸笔来记录了,哈哈,执行nohup后会在终端输出给你的。而自动输出方法是什么呢?nohup后显示的pid既不是标准输出也不是标准错误输出,无论用2>还是1>都是无法获取的。那么我们可以通过另外一种方法进行记录:利用$!创建进程号的文件。
直接上示例(run.sh):
#!/bin/sh
ls test_jacoxu-* | (while
read line;
do
echo “Start to run the matlab file:”${line}
nohup ../matlab.ln $(date ‘+%Y-%m-%d_%H-%M-%S’)${line}.out&
touch $!”.pid”
done)
通过touch $!”.pid”就可以输出以当前进程号命名的文件啦.pid
======================== 吐槽Time ================================
最近调试CNN模型状态欠佳,又进入了一个低效模式,貌似假期来临前的状态就是等待放假。换一个思路,看看分布式吧