起動スクリプトでパスワードでコマンドを送信する

起動スクリプトでパスワードでコマンドを送信する

セントOS 6.5

サーバーは特にAWS AMIです。これ

upstartを使用して起動時にプロセスを開始しようとしています。

この特定のボックスでは、rootログインが無効になり、sudo何かを実行する必要があるたびにパスワードの入力を求められます。

したがって、単にコマンドをスクリプトに入れるだけでは機能しません。

追いかけようとするこの回答、成功できませんでした

/ect/init ディレクトリに次の rio.conf ファイルがあります。

start on runlevel [2345]
stop on runlevel [!2345]

exec echo Password! | sudo -s /usr/bin/riofs --fuse-options="allow_other" --fmode=0777 --dmode=0777 xx.xxxxxx /mnt/applications/recorder/streams/_definst_/s3

これを実行するたびに何も起こらないようです。

Password!これは単なるサンプルパスワードです。

編集する:

入力すると、exec /usr/bin/riofsSSHウィンドウが閉じて戻ってくると機能することがわかります。これが何を意味するのか、どのように自動化するのかは全くわかりません。

ベストアンサー1

sudoinit / upstartスクリプトにある必要はありません。デフォルトでは、すべてのinit / upstartサービスはrootとして実行されます。

このように考えてみてください。どのユーザーで起動スクリプトを実行しますか?個人ユーザーとして実行したい場合はなぜですか?システムはスクリプトだけを見ることができ、個々のユーザーが誰であるかはまったくわかりません。

つまり、exec行を次のように変更します。

exec /usr/bin/riofs --fuse-options="allow_other" --fmode=0777 --dmode=0777 xx.xxxxxx /mnt/applications/recorder/streams/_definst_/s3

結局私はそれをしません。ファイルシステムをマウントしています/etc/fstab。次の作業が必要です。

riofs#xx.xxxxxx    /mnt/applications/recorder/streams/_definst_/s3    _netdev,allow_other,fmode=0777,dmode=0777   0 0

おすすめ記事