問題タブ [exec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaで別のユーザーを使用して外部プロセスを呼び出す
Windows サービスとして実行されている Java アプリケーションがあります。特定の機能は、バイナリを実行する必要がありますが、アプリケーションを起動した別のユーザーで実行する必要があります。
「別のユーザーとして実行」スタイルで exe を呼び出す方法はありますか。
ProcessBuilder の API を確認しましたが、ユーザーに関するものは見つかりませんでした。これを達成するためのサードパーティのツールはありますか。
java - プログラムで実行したときに ant.bat がエラーステータスを返さないのはなぜですか?
コマンドラインから ant を実行して失敗すると、ゼロ以外の終了ステータスが返されます (UNIX では $?、Windows では %ERRORLEVEL%)。しかし、(ProcessBuilder を介して) ant を実行している Java プログラムがあり、ant が失敗すると、Windows では終了ステータスを取得できません。
この単純な ant テスト ファイルでこれを確認しました。
UNIX では、ant を実行すると失敗メッセージが出力され、$? がエコーされます。Windows では、ant または ant.bat を実行すると失敗メッセージが出力され、後で %ERRORLEVEL% をエコーすると 1 が出力されます。
ここで、以下のテスト プログラムを使用します。 UNIX では、java Run ant は失敗メッセージを出力し、$? Windows では、java Run ant は実行する ant という名前のプログラムを見つけることができませんが、java Run ant.bat は失敗メッセージを出力しますが、後で %ERRORLEVEL% をエコーすると0が出力されます。何を与える?
ant の実行後に終了ステータスを確認できることに依存しています。とにかく、私たちはそうでした。プログラム的にこれに頼ることができないのはなぜですか?
テストプログラム:
php - PHP exec() がハングアップ、エラー 500
そこで私の計画は、PHP と IECapt を使用して URL の小さなサムネイルを作成することです。優れたコマンド ライン ツールである IECapt はうまく機能し、指定した URL のフル サイズの画像を 1 ~ 4 秒で取得します。しかし、私の問題は、PHP を介して実行することです。これは私が動作させようとしているコードです:
$URL はもちろん URL であり、$filename は URL の簡略化されたバージョンです。
ときどき IECapt で画像をスナップすることがありますが (PHP 経由)、非常に時間がかかり (30 ~ 60 秒)、最終的には常に 500 エラーが発生し、何が問題なのかを示すエラー メッセージは表示されません。どちらの変数も問題なく、コマンドラインで手動で機能します。
IECapt http://google.com Google.png
関連する場合、サーバーのセットアップは IIS7 と PHP5.2.9 です。(Windows Vista、すべて私のパソコン上にあるため、フル アクセスです。)
何か案は?
python - exec はローカルでどのように機能しますか?
これで 3 が出力されると思ったのですが、1 が出力されます。
c - Unix プログラミング... fork() & execv() ヘルプ... C プログラミング
私は自分のUNIX端末を書いていますが、コマンドを実行する際に問題が発生しています:
まず、ユーザー入力を取得してバッファーに格納し、次に単語を分離して argv[] 配列に格納します。つまり、argv[0] に格納されている firefox を起動するコマンドは「firefox」です。
コマンドを起動するにはどうすればよいですか? これは私がやろうとしていることですが、エラーが発生しています:
私が電話するとき:
次のエラーが表示されます: エラー: launchProcess のタイプが競合しています
php - PHPスクリプトからコマンドラインを実行する方法
特定の Unix アカウント (スクリプトが存在するのと同じ Unix サーバー) に関する情報をユーザーに提供するスクリプトを作成する必要があります。ほとんどの場合、passwd ファイルに含まれているか、finger 経由で利用できるものです。
PHP はセーフモードであるため、php に組み込まれているものから passwd ファイルにアクセスすることはできませんfile_get_contents()
。また、セーフ モードであるため、他のさまざまなコマンド ライン機能が無効になっています。
ソケットを介して情報を取得できると思っていましたが(それが何を意味するのかまだわかりませんが、試してみると思いました)socket_create()
、不明な機能である致命的なエラーが発生します。php-config ファイル (参考までに変更できません) を取得しましたが、ソケットが有効になっていません。
ただし、そこにいる間、'--with-exec-dir='
実際のディレクトリが設定されていない行を見ました。
それで、すべてのコマンドライン機能を試していたときに、「セーフモードでは許可されていません」タイプのエラーを投げた人もいれば、何もしなかった人もいることを思い出しました。私が次のようなものを置くと:
私はで終わるでしょう[[]]
。したがって、エラーはなく、結果もありません。
結論:
私が試したことのないものはありますか?(一般に) 動作させるために設定できるランタイム構成オプションはありますexec()
か?
簡単なメモ:私も試しpassthru()
てみましたが、具体的passthru("pwd")
にはまだ出力がありません。
アップデート
フィードバックに基づいて、次の両方を試しました。
その結果:
と
その結果:
1 は有望に聞こえますが、まだ私が望んでいるものではありません。
考え
したがって、これは実際には、私がアクセスできない既存のスクリプトの更新です (聞かないでください)。これは、cgi 経由で呼び出される perl スクリプトです。cgi 経由で php を実行する方法はありますか (したがって、perl を処理したり、古いコードに依存したりする必要はありません)。
c - acプログラムから「echo$PATH」を実行しますか?
CプログラムからPATH環境変数を表示、設定、変更しようとしています。私はこのようなことをしています:-
しかし、私は結果を得ていません。
c - & を引数として exec() を使用してバックグラウンド プロセスを開始できますか?
そうでない場合、C でバックグラウンド プロセスを開始するにはどうすればよいでしょうか。
path - エコー$PATHの問題
bashシェルで作業しています$プロンプトでecho$PATHと入力すると、パス環境変数の値が次のように取得されます。
/ opt / bin:/ usr / local / bin:/ usr / bin:/ bin:/ usr / games
独自のシェルを作成していて、ユーザーがecho$PATHを入力したときにパス環境変数を出力したいと思います。それ、どうやったら出来るの?