几行简单的shell代码,用来在实验室公用的服务器上忙等之前占用GPU的进程,一旦之前的进程退出,马上启动自己的进程来抢占GPU (再也不用担心总是排不到空闲GPU了
基础版
临时写的因而比较随意,大部分情况下,在这个代码基础上改一改就可以实现类似需求
1 | res=`ps -ef | grep english_drop | wc -l` |
重点只有一个,就是灵活地用起来shell中的wc
指令
-l
: 返回行数-L
: 返回字符最多的一行的长度-m
: 返回characters数量-c
: 返回bytes数量
流氓版
同理想盯某一块显卡有没有进程在占用就可以这样写(只对用python启动的进程有效,用其他方式启动的进程只要改下grep后面的参数即可)
1 | res=`nvidia-smi | grep python | wc -l` |
单显卡的情况下更简单,没有进程占用GPU时nvidia-smi返回会显示
| No running processes found |
可以grep其中任意一个词来查看是否有进程占用,例如
1 | res=`nvidia-smi | grep running | wc -l` |