問題タブ [pid]
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.
bash - プロセスID(PID)が存在するかどうかを確認する方法
bashスクリプトで、次のことを(擬似コードで)実行したいと思います。
条件文の適切な式は何ですか?
c# - C# は、PID に基づいて定期的にプログラムを監視します
アイデアとご意見をお寄せいただきありがとうございます。
私のプログラムからサードパーティのプログラムが現在ユーザーのシステムで実行されているかどうかを定期的に確認したいと思います。現在、C# で次のようにプログラムを起動しています。
プログラムを起動し、Windows 環境でその pid を取得します。Putty/PLink は、ある時点で SSH サーバーから切断されて終了する可能性があるため、このプロセスがコードでどのように実行されているかを監視する最良の方法は何ですか?
このプログラムを起動して成功または失敗を監視するより良い方法はありますか?
c++ - C++ システムを使用して PID を取得
を使用してファイルを実行していますsystem
が、そのプロセスの PID を取得する方法がわかりません。誰も方法を知っていますか?
windows - Windows PID = 0 有効?
Windowsでは、0はプロセスの有効なPIDですか、それともOSによって予約されていますか? 予約済みかどうかを示すドキュメントへのリンクを提供していただければ幸いです。感謝!
objective-c - 既知の PID からバンドル識別子を見つける方法は?
任意の実行中のプロセスの pid (プロセス識別子) があります。関連付けられたアプリケーションのバンドル識別子 (存在する場合) を見つけるにはどうすればよいですか?
php - PHP CLI getmypid() で pid として 0 が返されるのはなぜですか?
私は長時間実行されるコマンド ライン スクリプトを開発していますが、もちろん、それ自体を複数回起動したくありません。そのため、.pid ファイルを作成し、起動時にそのような PID を持つプロセスが存在するかどうかを確認します。問題は、Windows では PID として 0 を返すため、常にその PID の実行によってプロセスを取得します (System Idle には PID 0 があります)。
誰かがそれを修正する方法を知っていますか? Windows 上で動作するデーモンを作成できますか? 修正は pcntl_fork でフォークされるのでしょうか?
PS私はYiiを使用しています.CConsoleCommandクラスをベースにしています。
java - スクリプトの実行が完了してもJavaがハングする
次のようなJavaコード内からスクリプトを実行しようとしています。
スクリプトの実行は終了しましたが(pidはもうありません)、JavaはwaitFor()
プロセスのメソッドでスタックしています!。はい、2つの別々のスレッドで出力ストリームとエラーストリームを読み取っています。はい、それらは最後に(後waitFor()
)結合されています。
スクリプトは基本的にいくつかのRPM(10程度など)をインストールし、それらを構成します。したがって、スクリプトは60秒強実行されます。
次のようになります。
驚いたことに、スクリプト(上部)に次の行を入れると、Javaはスクリプトが終了したことを認識し、プロセスを完全に終了します。
記録のために、スクリプトは出力を生成しません。ゼロ文字!。したがって、execステートメントをそこに置くことは意味がありません!
しかし、それでも、魔法のように、スクリプトにexecステートメントを入れると、Javaが機能します。なぜ??
スクリプトでその非論理的なexecステートメントを回避するにはどうすればよいですか?
Installer-script.shがどのように見えるかに興味がある場合は、次のようにします。
では、Javaがプロセスが終了したことを知るために、最初のスクリプトのexecコマンドが必要なのはなぜですか?どうすればその幹部を避けることができますか?、特に。最初のスクリプトは出力を生成しないためです。
息を切らして答えを待っています!
bash - ハドソンを殺して再起動するためのBashスクリプト
私はBashスクリプトの初心者ですが、すぐに習得できます。いつもの。Hudsonのインスタンスを強制終了して再起動するスクリプトを作成しようとしています。環境変数の変更を取得するには、再起動する必要があります。私がこれまでに持っているもの:
スクリプトは、実行中のHudsonインスタンスのPIDを正しく判別し、それを強制終了します。ただし、「kill」行の後で待機するだけで、続行しません。そこでキーを押すと、プロセスの強制終了が完了してスクリプトが終了し、whileループに到達することさえありません。明らかに、プロセスを強制終了する方法について何かが欠けています。ハドソンのプロセスがハングしていて、「キル」に応答していないわけではありません。私が介入するまで、それは正常に終了します。
また、これははるかに効率的である可能性があると確信していますが、今はどこが間違っているのかを理解したいと思います。
前もって感謝します。
linux - dash-execコマンドのPIDを見つける方法
注:bashを使用していると思いましたが、/ bin/shは/bin/ dashにリンクされており、この奇妙なexecの問題があります。
Linux上にサーバープロセス(作成も制御もしなかった)を起動するために使用される単純なbashシェルスクリプトがあり、bashシェルスクリプトに起動されたプロセスのPIDをpidfileに出力させたいと考えています。
問題は、bash-execコマンドが自身のプロセスを起動されたサーバープロセスに置き換えないことです。
それで:
ファイル内のpidはサーバープロセスではなくbashのpidになるため、これは機能しません。また、サーバープロセスが終了した場合、bashは終了せず、愚かな起動スクリプトがプロセスリストに表示されないままになる可能性があります。
誰かがbash(またはダッシュかもしれません)を使用する方法を知っていますか?
- 出来ますか?
- 起動されたサーバーサーバープロセスのPIDは私のpidfileにありますか?
- 起動されたサーバーが存在するときにbashスクリプトが終了し、無効なシェルプロセスがプロセスリストに残っていないことを確認しますか?
編集: bashリファレンスマニュアルからのこのスニペットは役に立ちます...
コマンドが指定されている場合、新しいプロセスを作成せずにシェルを置き換えます。-lオプションが指定されている場合、シェルはコマンドに渡された0番目の引数の先頭にダッシュを配置します。これは、ログインプログラムが行うことです。-cオプションを指定すると、コマンドは空の環境で実行されます。-aを指定すると、シェルはnameをコマンドの0番目の引数として渡します。コマンドが指定されていない場合、リダイレクトを使用して現在のシェル環境に影響を与えることができます。リダイレクションエラーがない場合、リターンステータスはゼロです。それ以外の場合、戻りステータスはゼロ以外です。
編集2:これはスクリプトです(サニタイズされています):
そして、いくつかのps出力はおそらくもっと明確になりますか?
c - pidfileライブラリを正しく使用する方法は?
pidfile関数ファミリのマニュアルページをすでに読みました。しかし、私はそれを本当に理解していません。正しい使用法は何ですか?より複雑な例はありますか?私は理解していると思いますpidfile_open
。しかし、いつ電話すればいいpidfile_write
ですprdfile_close
か?どのプロセスから?親か子か?これらの関数に渡す必要のあるパラメーターは何ですか?私はおそらくいくつかの*nixの基礎を欠いていると思います。
アップデート:
以下に、manpidfileの例を示します。なぜ彼らは二度フォークするのですか?なぜpidfile_close?pidfile_closeを呼び出すと、別のデーモンを起動できます。それは望ましくありませんか?