
私はAmazon Linuxを使用しています。まだ実行されていない場合は、プロセスを開始したいと思います。これはJenkins Mavenジョブに含まれるbashスクリプトです。だから私は持っています
pids=$(pidof /usr/bin/Xvfb)
if [ ! -n "$pids" ]; then
Xvfb :0 -screen 5 1024x768x8 &
fi
残念ながら、プロセスがない場合、 "pids=$(pidof /usr/bin/Xvfb)" 行は失敗した終了コードを返し、その後のその他の行は実行されません。失敗した終了コードを返さないように上記の内容を書く方法はありますか?
答え1
で実行している場合は、set -e
コマンド|| true
の後に追加してコマンドの失敗を無視します。
pids=$(pidof /usr/bin/Xvfb || true)
if [ ! -n "$pids" ]; then
Xvfb :0 -screen 5 1024x768x8 &
fi
ただし、pidof
プロセスがない場合はゼロ以外の状態を返すため、出力が空であることを確認するのではなく、戻り状態を直接テストできます。
if ! pidof /usr/bin/Xvfb >/dev/null 2>&1; then
Xvfb :0 -screen 5 1024x768x8 &
fi