nohup に関する記事は色々と出てきますし、昨年のアドベントカレンダー、
cp, mv, rsync 等の verbose が遅い時は nohup か & で にも書いているのですが、
sudo と リダイレクト を組み合わせる方法が、あまり検索にヒットせず、
色々と試行錯誤した結果、下記でいけました。
例
sudo nohup sh -c 'sleep 20; echo finish > nohup-test.log 2>&1' > /dev/null 2>&1 &
冗長に見えますが、上記のように
- nohup sudo ではなく、sudo nohup
- コマンド内容は通常のリダイレクトで
- sudo を バックグラウンドで処理させるために、末尾に > /dev/null 2>&1 & を付ける
-
- sudo nohup を 末尾の > /dev/null で捨てないと nohup.out が作成され、画面が「固まったように見える」ので注意
※動作確認環境は RHEL や Amazon Linux 2023 等の RedHat系OS