• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIから複数の別プログラムを同時に呼び出す)

複数の別プログラムを同時に呼び出す方法

hiroaki101の回答

回答No.3

No.2で回答した者です。先ほどは間違えました。 > $x=0; > while (`ps | awk '/downloader/&&!/awk/{a++};END{print a}'` > 0 || $x < 60) { これは "while (`.....` > 0 && $x < 60) { ..."とすべきところでした。訂正します。 No.1回答者様がおっしゃっているように、wgetの引数で複数サイトを一度に指定できる場合は、その方が簡便な解決策になるでしょう。同時平行ダウンロードはできませんが、CGIを待たせるコード、タイムラグが不要になります。旧バージョンのwgetではできないみたいなので、場合によりwget、curlなどのアップグレードインストールが必要になるかもしれません。

AAbb11ccDD
質問者

補足

ご丁寧な解説ありがとうございました。 そういえば UNIXコマンドで & を付けてバックグラウンドで走らせるというのがありましたね。 すっかり忘れてしまっています(^^;; $x=0; while (`ps | awk '/downloader/&&!/awk/{a++};END{print a}'` > 0 && $x < 60) { sleep 1; $x++; } これは、バックグラウンドで起動させた複数の「downloader」という名前のプログラムのプロセス数を awk で数えて変数「a」に加えていき、最後にEND{print a}で出力させて、それが0個になるまで1秒ごとに最大60回まで調べに行くということでいいでしょうか?

関連するQ&A

  • cgiから別のcgiをコールする方法を教えてください。

    いつもお世話になります。 プログラムとプログラムを結合しております。最初はサブルーチン化しようと思いましたが、元のプログラムの解析ができず。プログラムのコールしたいと考えております。perlから別のperlで作成したcgiをコールする記述方法を教えてください。初歩的な質問で申し訳ありません。

    • ベストアンサー
    • Perl
  • C言語のプログラムについて

    C言語のプログラムについて 3桁の自然数の中で、自分自身を含めた約数が奇数になるものがいくつあるかを求めるプログラムを作りたいのですが、swich文を使って、6通りの方法で出そうとしていまして、 while 文、 for文、 do while文に加え、 for文のを、1つの関数として独立させたもの、 さらに、for文のを重ループ部分のそれぞれのループに対応して、2つの関数として独立させたもの、 そして、この2つの関数のどちらともをループを用いずに再帰呼び出しを用いたもの の6通りで出したいのですが、swich文を使うところは自力でできたのですが、あとの6つそれぞれのプログラムの組み方がわかりません。 教えていただけないでしょうか?ややこしい書き方をしてすいません・・・。

  • 関数で、名簿順で入力すると同時に別シートへ

    Excel関数で、名簿順で入力すると同時に別シートに成績順でそのデーターを表示する時の関数をお教え下さいませんか。ソートすることはできますが、別シートに入力と同時にできないかと思ってのことです。 例えば、こんなデーターを別シート成績順で表示させたい 1 A君 25点 2 B君 83点 3 C君 35点 4 D君 25点 5 E君 98点 7 F君 52点

  • CGIプログラムに自信のある方、どうか知恵を貸して下さい!!

    Perlで書いたCGIプログラムを使って、申し込みフォームを作成し、送信先をOutlookExpressのメーラーにしてHTML形式で表示しています。 それを更に応用して、そのHTML表示のメールに送信ボタンも表示させて、更に別の人に送信する(送信先は、そのメールの中に書き込まれているアドレス)というものを作成したいと思っています。(OutlookExpressの転送メール処理を使用しない) このようなものを作成するには、Perlを使ったCGIプログラムでできますでしょうか? ちょっと無謀な案ですが、どなたか良い案があれば、知恵を貸して下さい。

    • 締切済み
    • CGI
  • CGIプログラムに自信のある方、どうか知恵を貸して下さい!!(再)

    Perlで書いたCGIプログラムを使って、申し込みフォームを利用し、メールでデータを送信しています。(HTML形式で表示するようにしています) (使用しているPCはWindows98、メーラーはOutlookExpressです) それを更に応用して、そのHTML表示のメールに送信ボタンも表示させることにより、更に別の人に、そのHTML表示のデータそのままを送信する(送信先は、そのメールの中に書き込まれているアドレス)というものを作成したいと思っています。(OutlookExpressの転送メール処理を使用しない) このようなものを作成するには、Perlを使ったCGIプログラムでできますでしょうか? ちょっと無謀な案ですが、どなたか良い案があれば、知恵を貸して下さい。

    • 締切済み
    • CGI
  • PHPで外部CGIの表示

    今までサイトをHTMLで書いていましたが、共通項目などが管理しやすいようにPHPで構築しなおしていますが、CGI(perl)で運営している、BBSやメールフォームなどは、今まで通りのCGIで使用しいきたいのですが、PHPファイル内に自サーバー内のCGI(perl)で構築しているファイルを読み込むのに require,includeではうまく、PHPファイル内に表示されません。 readfileだと、自サーバー以外のファイルを読み込む場合に使用する関数と理解していますが、CGIファイルなどを読み込む場合にはどのようにしたらよいのでしょうか? ちなみに、この場で整理する意味で、まとめて使い方を教えて下さい。

    • 締切済み
    • PHP
  • 複数のCGIの実行結果の取得方法

    お世話になります。 掲示板への投稿の際、管理者審査が必要な掲示板を複数設置しています。 その際、各掲示板に投稿があったかどうかを管理者が確認する際に、掲示板の数だけ管理者としてログインし確認→別の掲示板へログインし確認→のループ作業が発生している状況です。 それらの作業をプログラムで一つの流れとして作れないものかと悩んでいます。 ちなみに現在は、最初の掲示板に管理者としてログインした際に、管理画面内でJSファイルから外部CGIを呼び出す形で <SCRIPT LANGUAGE=javascript src="./kanri.cgi"></SCRIPT> として各管理者用の掲示板を呼び出して、必要な部分の内容だけを出力するようにカスタマイズした状態で表示しています。(PASS等はクッキーで取得させています。) 上記のようにする事で掲示板の数だけ管理者としてログインしなくて済んでいるのですが、JSファイルで外部CGIの実行を70近く呼び出すようにしている為、表示される際の時間が物凄く遅いのがストレスに感じています。 これをプログラムで実現できればと思い、for文やwhile文、foreach文等の基本的動作についての解説を調べてはいるのですが、kanri1.cgi~kanri70.cgiまでのファイルの実行と、どのようにすればその結果を取得でき更に表示までできるのか・・など思うように調べられず悩んでいます。 ※シェルスクリプトでwgetで各kanri.cgi~kanri70.cgiの実行結果を取得し、その実行結果を >>でファイルに保存し表示するようにもしてみたのですが、結果的には表示までが非常に遅く、やってる事はJSファイルで呼び出しているのと何らかわりない事に気がつきました。) 実現の仕方は色々あるかと存じますが、諸先輩方、何か参考になるようなアドバイスやご教授など頂けませんでしょか。

    • ベストアンサー
    • CGI
  • CGIプログラムを使ってレースの結果をHTMLに表示

    CGIプログラムの件でご質問したいのですが、datファイルのレース結果をCGIプログラムを使ってHTMLに表示したいと思っています。 datファイルの内容は、レースの結果が1位から順に10位くらいまでA,B,Cクラス混合で並んでいます。 1,Aクラス,青チーム,12:50,山本太郎 2,Cクラス,赤チーム,11:23,山田花子 3,Bクラス,黄チーム,10:52,松本典子 4,Aクラス,桃チーム,10:32,加藤茶子 それをCGIプログラムによって、各クラスごとに表示します。 CGIのプログラムの内容は、 open (FILE, "<data.dat") || die "File 'data.dat' Open Error."; @all = <FILE>; close(FILE); foreach (@all){ ($data1, $data2, $data3, $data4,$data5) = split(/,/, $_); next unless ($data2 eq "A"); &one_data; } sub one_data { print << "END_OF_ONE"; <P>$data1位<BR> $data2<BR> $data3<BR> $data4<BR> $data5<BR> </P> END_OF_ONE } 1; だいたいこんな感じですが、この各クラスごとに表示したHTMLのファイルの順位のところが、もとのdatファイルの順位になってしますので、それを1位から順にクラス別の順位として表示したいのです。 それにはどのようにしたらよいでしょうか? すみません、あまりperlの言語の知識がないもので。。

    • 締切済み
    • CGI
  • Javascript から CGI の呼び出し

    HTMLから、小窓を開いて画像を表示させるプログラムを書いています。 小窓には、画像保存ボタンとCLOSEボタンがあります。 CLOSEボタンを押すと、画像の情報がディレクトリから消されるような仕組み(CGI)になっています。 ただ、困ったことに、ブラウザの右上のバツ印で小窓を消されるとそのCGIが起動しません。 バツ印をつかえなくするか、何か画面を閉じた瞬間にCGIを動かせるような方法はないでしょうか。 ちなみに,現段階のプログラムはこのようなかんじです。 <script language="JavaScript"> <!-- function exit(){ window.open("http://etwas/cgi/test.cgi"); alert("test"); } <!----> </script> </head> <body onUnload="exit()"> こうすることで,閉じた瞬間に新しい画面が開いてくれるのではないか、と思ったのですが うまく行きませんでした。アラートはでるのですが。 ちなみに遷移先のCGIは開いた瞬間にプログラムを実行して閉じるようにしてあります。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • cgiで作られた画像掲示板がありますが

    cgiで作られた画像掲示板がありますが http://xxx...cgi-bin/imgboard.cgi (xxxは伏せてあります) というURLがあります ここの掲示板では5スレッドほど1htmlに表示しています そして、次の5スレッドほどをみたいときには imgboard.cgi というボタンを クリックしないと次の5スレッドが見れないです 何がしたいかというと このimgboard.cgi のボタンを押すという処理で 次のHTMLが表示されるので、この処理をプログラム(C/C++)で実装したいです ほかの掲示板では 1.htm 2.htm 3.htm とあり htm を直接呼べたのですが cgiだとこの直接呼び出すことができません どのようにして、プログラムでcgiを操作し次のhtmを呼び出すのでしょうか?

    • 締切済み
    • CGI