起動スクリプトにはroot権限が必要です

起動スクリプトにはroot権限が必要です

起動時に実行する必要があるスクリプトがあります。 init.dに入れました。 root権限でスクリプトのコマンドの1つを実行する必要があります。どうすればいいですか?

編集1:

参考までに、ClearCase/ClearQuest RHEL 6.7 サーバーです。ライセンスマネージャの前にCCを起動するのに問題があるようです。したがって、次のコマンドを実行したいと思います(すべてのコマンドにはroot権限が必要です)。

 /path/to/atria_start stop  # stop CC
 /path/to/start_lmgrd start # start license manager (flexlm)
 /path/to/atria_start start # restart CC

このうち何も起こらなかった。 /etc/init.dの簡単なスクリプト「cc_startup.sh」に入れました。

答え1

init.dにある場合は、rootとして実行する必要があります。起動時に実行するには、たとえばOSディストリビューション/バージョンに従って入力/etc/rc.d/rc2.dします/etc/rc2.d。たとえば、次の形式でリンクを作成する必要があります。

S##Name -> ../init.d/scripthere.shここで、##は起動時に実行したい場所と同じです。 SSHの前に現れたいですか? Apacheの後?データベースの前に?その他などこれを知ると、どの番号を入力する必要があるのか​​がわかります。

これを達成するには、ln -s ../init.d/scripthere.sh S##name正しいrcディレクトリで実行する必要があります。

答え2

RHと派生ディストリビューションで独自のinitスクリプトを生成する場合は、実際にはデフォルトのchkconfig起動設定ユーティリティを使用するように作成する必要があります(ほとんどのRHL管理者が知って使用しているため)。

以下は基本をよく扱っています。 新しいchkconfig initスクリプトの生成

答え3

Bashではテストしましたが、他のシェルではテストしませんでした。あなたのコンピュータでのみ動作したい場合。以下を使用できます。

echo $MY_SUDO_PASSWORD | sudo -S <command>

もちろん、$ MY_SUDO_PASSWORDがsudoパスワードと一致すると、パスワードを要求せずにsudoで実行されます。

関連情報