何が起きたか
FujitsuのジョブスケジューラであるPJMでジョブを投入したら,標準出力も標準エラー出力も書き込まれずジョブが一瞬で終了してしまった.
例えばこんなジョブもこの状態であった.
#!/bin/bash #PJM -L "rscunit=hoge" #PJM -L "rscgrp=hage" #PJM -L "vnode=N" #PJM -L "vnode-core=M" #PJM -L "elapse=01:00:00" #PJM -j echo 'Hello, Sekai!'
当然他のユーザに試してもらうと期待通り書き込まれるため悪いのはこちらの環境.
私だけジョブスケジューラに嫌われているという可能性もなくはないですが....
解決
原因は~/.bash_profileでShellをbashからzshにすげ替えるこの記述にあった模様.
if [ "$SHELL" != "/bin/zsh" ] then export SHELL="/bin/zsh" exec /bin/zsh -l fi
ジョブスケジューラによって割り振られたノードにログインした際,zshが返り値1で終了しジョブも終了することが確認できた.
zshは異常なく終了すると返り値は0となるよう.
chshでzshが選択できなかったためこの記述を使っていたが,ログインノードでは期待通り動作しても計算ノードに割り当てられた際は動作しなかったみたい.
原因の深追いはしていないが,とりあえずこの記述を削除しbashを使用した場合は期待通りジョブが完了した.
試してはいないが,hostnameを見てzshへすげ替えるかどうかを切り替えると幸せになれるかもしれない.
カテゴリー:サーバ
記事作成日:2020-10-01