人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

レンタルサーバーでのGUIからのCRONの設定で、1行で、そのプロセスが実行されていなければ実行する、という書き方を教えて下さい。

現状、下記の様に設定していますが、もしまだ実行中であれば起動はしない、という条件を加えたいです。
/usr/bin/php /home/***/public_html/sc/index.php

シェルスクリプトを作成し、***.sh を起動するようなイメージでしょうか。出来ればGUIで一行で追加出来るのが理想です。

※下記のレンタルサーバーです。root権限はありません。よろしくお願い致します。
www.bluehost.com
※PHP初級?中級者です。

●質問者: maintour15
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● quintia
●300ポイント ベストアンサー
ps ux | grep hoge | grep -v grep || hoge

とかどうでしょう?

ps ux | grep hoge で自分が起動しているの中にhogeを含むものが絞り込まれます。
"grep hoge"自身が必ず含まれますから、grep -v grep でgrepが含まれる行を消します。
結果1行でもあったら、|| の作用で||以降は実行されません。
1行もない時だけ、||以降が実行されます。


maintour15さんのコメント
ありがとうございます。 ps ux | grep index-cron.php | grep -v grep || /usr/bin/php /home/***/public_html/sc/index-clon.php 上記のような使い方で良いのでしょうか。 また、hogeは一意の名前である必要があるという認識でよろしいでしょうか。

maintour15さんのコメント
ps ux | grep index-cron.php | grep -v grep || /usr/bin/php /home/***/public_html/sc/index-clon.php 一応上記で試しました所、重複して実行されておりました。

quintiaさんのコメント
ps ux | grep index-cron.php がすでに実行中のプロセスを表示するかどうか確認しなかったのですか? レンタルサーバーだからその確認が容易にできないということでしょうか。 psコマンドに引数が表示されてない、ということかもしれませんね。 ps ux > /home/***/ps.result.txt とかやってみて、psコマンドの出力を確認してみたらいかがでしょうか。

maintour15さんのコメント
ありがとうございます、大丈夫そうには見えたのですが、一つだけ気になりましたのが、 /usr/local/cpanel/bin/jailshell -c ps ux | grep index-cron.php・・・(続く) という、登録したスクリプトと、 /usr/bin/php /home/***/public_html/sc/index-cron.php というもの2種類がps.result.txtとコンパネのプロセスマネージャ両方で確認出来ましたが、これは2つ同じプロセスが動いているわけではない、という認識で大丈夫そうでしょうか。

quintiaさんのコメント
jailshell はアクセスできるファイル/ディレクトリの範囲を制限する(もしくは別のものに見せかける)ことができる、制限されたシェルのようですね。 /usr/local/cpanel/bin/jailshell -c ps ux | grep index-cron.php…… を実行すると、その子プロセスとして /usr/bin/php /home/***/public_html/sc/index-cron.php が実行されているのだと思います。 /usr/bin/php /home/***/public_html/sc/index-cron.php が終了すると、/usr/local/cpanel/bin/jailshell〜も自動的に終了するかと。 (jailshell をよく知らないので外しているかもしれません)

maintour15さんのコメント
承知いたしました。 おそらくそういうものだと認識し、違っていればまた質問投稿させて頂こうと思います。 何度もありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ