バックグラウンドプロセスのスクリプトがクラッシュしたかどうかを確認する方法はありますか?

バックグラウンドプロセスのスクリプトがクラッシュしたかどうかを確認する方法はありますか?

私はUbuntu 20.04を使用しており、ffmpegコマンドがバックグラウンドでクラッシュしていることを確認するスクリプトを書いてみたいと思います。競合が発生したら、コマンドを再初期化する必要があります。誰でもbashスクリプトコードを提供できますか?

ベストアンサー1

以下は.だけでなく、すべてのコマンドに適用されますffmpeg

最も簡単な場合

: &
wait -n "$!"
echo "Status was ${?}."

false &
wait -n "$!"
echo "Status was ${?}."

(exit 17;) &
wait -n "$!"
echo "Status was ${?}."

マルチパラレルコマンド

declare -i i
declare -ai pids=()

for ((i = 10; i < 20; ++i)); do
  (exit "$((i))";) &
  pids+=("$!")
done

for i in "${!pids[@]}"; do
  wait -n "${pids[i]}"
  echo "Status of command Nr. ${i}, PID ${pids[i]}, was ${?}."
done

管路

false | true | (exit 11;) | true | (exit 7;) | false

declare -i pipestatus=("${PIPESTATUS[@]}")
for i in "${!pipestatus[@]}"; do
  echo "Pipeline stage ${i} terminated with status ${pipestatus[i]}."
done

おすすめ記事