実現したいこと
1. こちらはパスワードも求められないが動作しない(sudo
なし)
console
1% ps aux | grep "watch" | grep -v grep | awk '{ print "kill -9", $2 }' | sh 2sh: line 1: kill: (128) - Operation not permitted
2. パスワードを求められるが動作する(sudo
あり)
console
1% ps aux | grep "watch" | grep -v grep | awk '{ print "kill -9", $2 }' | sudo sh 2Password:
上記の2. のような処理を自動化するためにスクリプトに入れたいです。
解決したいこと
cargo lambda watch
コマンドをバックグラウンド実行していて、このプロセスをスクリプト内でkill -9
する方法についてです。
パスワードが必要となるsudo
コマンドをスクリプト内で使用したいです。echo
とsudo -S
を使えばいけるという記述が多くWeb上に情報として出回っていますが、今回の私のような処理ではawk
などの処理をパイプで繋いでいるため途中にecho
を挟めないと思っています。
こうやれば良いようですが
console
1% PASSWORD=*** 2% echo $PASSWORD | sudo -S sh
こうしても動作するものですか?
console
1% PASSWORD=*** 2% ps aux | grep "watch" | grep -v grep | awk '{ print "kill -9", $2 }' | echo $PASSWORD | sudo -S sh
もしかしてこれで動きますか?
bash
1PASSWORD=*** 2echo $PASSWORD | sudo -S echo 'ログイン' 3ps aux | grep "watch" | grep -v grep | awk '{ print "kill -9", $2 }' | sudo sh
まとめ
スクリプト内でパイプで繋いだ処理の途中のsudo
にパスワードを自動で与える方法についてベストプラクティスを助言お願いしたいです。
拙い質問ですが、ご存知の方いらっしゃいましたらご回答のほどよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー