ターミナル下部にジョブの実行状況を表示
(最初python側でsleepさせてたんですが、この環境だとうまく動かないらしい)
screenのhardstatusで表示させます。
screenのbacktickはコマンドの実行結果を取得することができるので、
ジョブ状況を取得するスクリプト書いてbacktickで読みます。
某環境向けジョブ状況取得スクリプト(使い回しのコピペ作成です)
~/.screen/llqmonitor.pyとでも保存してください
usernameは自分のものに書き換えること。
#!/usr/bin/env python import subprocess username = "your username" qstat = subprocess.Popen(['llq'],stdout=subprocess.PIPE) grep = subprocess.Popen(['grep',username], stdin =qstat.stdout, stdout=subprocess.PIPE) status = [ line.split() for line in grep.stdout.readlines() ] #jobid,user,day,time,status,priority,category running = [ row for row in status if row[4]=="R" ] waiting = [ row for row in status if row[4]=="I" ] if len(running)>0: running_names = "(%s)"%(",".join([row[0] for row in running])) else: running_names = "" print "%d:rest %d%s:running %d:waiting"%( len(status),len(running),running_names,len(waiting))
こちらを.screenrcに書きます
backtick 1 30 30 python $HOME/.screen/llqmonitor.py # interval 30 sec hardstatus alwayslastline hardstatus string '%{kC}Host:%{kC}%H %-w %{ky}%n %t%{kC} %+w %= %1` %Y/%m/%d %{kC}%C%a'
screenを起動すればジョブ状況が常に表示されるはずです。
こんなかんじ