特定のユーザーが「root」ではないユーザーが実行する必要があるソフトウェアがあるため、そのソフトウェアのホームディレクトリはです/home/non-root/
。このプログラムはrootを介して実行してはいけません。mysqlが起動し始めた後にのみ実行できることを強調したいと思います。
次のコマンドで実行する必要があるソフトウェアがあります./athena-start start
。私はUnixシステムに慣れておらず、チュートリアルを見つけるためにインターネットを検索しようとしましたが、root以外のユーザーを介してCentosで自動的に実行する方法のガイドを見つけることができませんでした。ここしかし、Fedoraでのみ動作するようです。
誰でも私を助けることができますか?
答え1
これを達成する方法はいくつかあります。 crontabや他のさまざまなスクリプトを使用する初期化スクリプト。私の意見では、最も簡単な方法は、コマンドを@reboot
実行する必要があるathena-start start
ユーザーのcrontabにラベルを使用することです。
この@reboot
タグは、コンピュータの起動後にコマンドを一度だけ実行します。crontab -e -u <yourusername>
選択したユーザーのcrontabに以下を配置するために使用されます。 crontabに入れるべき内容は次のとおりです。
@reboot while [ "x`ps -ef|awk '$8 ~ /[:print:]*mysqld[:mysqld:]*/ { print $2 }'|wc -l`" == "x0" ]; do sleep 10 ; done && cd /your/directory && ./your_command
crontabにひどい1行を書くのではなく、これをスクリプトに書いてどこかに置くことをお勧めします。これらすべての基本的なアイデアは、10秒ごとにプロセステーブルをチェックし、一致するものが見つかると次のようになります。 mysqldプロセス(またはこれとよく似たもの)があり、ループを終了して実行したい重要なコマンドがあるディレクトリに変更し、最後にそのコマンドを実行します。
別のオプションは、MySQLデーモンの後に始まるinitスクリプトを書くことです。ただし、この例では、# chkconfig
MySQL initスクリプトで始まる行の内容が必要です。