実現したいこと
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
プレビュー