問題タブ [ps]
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.
perl - $0 をローカライズした後に元の引数を表示する
引数を指定して実行するとa b c d e f g
、このスクリプトは次のようになります。
次のように出力します。
つまり、3 番目のケースでps
は、元の argv 配列は表示されません。
元の引数(例a b c d e f g
)を復元/表示できる方法はありps
ますか?
Centos と Ubuntu を使用しています。
macos - OS Xのターミナルでプロセスを調べる方法は?
OS Xで実行されているプロセスの情報を表示したいのですがps
、ターミナルで実行すると、開いているターミナルウィンドウが一覧表示されます。実行中のすべてのプロセスを確認するにはどうすればよいですか?
Webブラウザー、ターミナル、およびテキストエディターを実行しているとします。テキストエディタとウェブブラウザの情報を見たいのですが。
unix - psの結果を開始時間で並べ替える
ps
このさまざまなコマンドを使用して、現在のプロセスに関する情報を表示しています。
これらの結果を最初から並べ替えるにはどうすればよいですか?
を読んman ps
で試し-m
、オプション-r
を並べ替えました。-v
残念ながら、これらのオプションを使用して最初から並べ替えることはできませんでした。
linux - postgreSQL サーバー プロセスのデバッグ (正しいプロセス ID を特定する方法)
V1 呼び出し規約を使用して、PG 用の C 拡張ライブラリを作成しました。私のデータベースはバージョン8.4です。新しい関数の作成に成功しました。
ただし、新しい関数を呼び出すと、サーバーがクラッシュし、次のメッセージがコンソールに送信されます。
サーバー ログには次の行が含まれます。
gdb を postgres プロセスにアタッチし、スタック トレースを取得できるかどうかを確認して、デバッグを開始したいと考えています。ただし、実行すると
ps補助 | grep postgres
postgres プロセスを特定しようとすると、postgres と呼ばれるプロセスがいくつかあるようです。
上記のデバッグ目的で (再起動後に) postgres サーバー プロセスを正しく識別するにはどうすればよいですか?
ubuntu - Debian 32 と Ubuntu 64 で PHP CLI のプロセス タイトルが大きく異なる
Debian Squeeze 32とUbuntu 11.10 Server 64の 2 つのサーバーがあります。同じコマンドを使用した同じスクリプトの動作は大きく異なります。
スクリプト test.php:
指示:
Debain: 数値が表示され、プロセス タイトルはphp -q test.php
予想どおりです。pidof "php -q test.php"
正常に動作します。
Ubuntu: 番号はありません。工程タイトルはphp
。pidof "php -q test.php"
動作せず、使用できませんpidof php
。
Ubuntu の何が問題になっていますか?
アップデートWOW! pgrep -f "php -q test.php"
うまく機能しますが、そうではありpidof "php -q test.php"
ません。
Update 2これが当てはまるかどうかはわかりませんが、Debian では通常のコンソールで作業し、Ubuntu には SSH でアクセスしています。
bash - psとttyの異なる端末ID
私が開始したプロセスの端末IDは、ttyの結果とは異なります。そのためのルールはありますか?プログラムを開始した場合にプログラムが持つ端末IDを確認する方法はありますか?
パテを介してopenSUSE11.3マシンに接続しています。
linux - 「ps」を使用して時間範囲内のプロセスを見つける
過去 5 時間以内に開始された処理を確認するにはどうすればよいですか? それはできps
ますか?
ps -ef | grep <username>
のすべてのプロセスを表示するものを使用する必要があります。次に、STIME列を手動で確認する必要があります
haskell - Haskellでargv [0]を設定しますか?
argv[0]
Haskell プログラム (たとえば、ghc でコンパイルされたもの)に設定する方法はありますか?
getProgName
System.Environment でand関数を見つけましたが、レポート (Ubuntu) はwithProgName
変更されていないようです。ps
bash - bashスクリプトでpsを使用するときに現在のタイムスタンプを取得する方法は?
そのため、現在のすべてのプロセスを実行し、それらをgrepにパイプして、必要なプロセスを除外するシェルスクリプトを作成しています。
ただし、タイムスタンプを取得するためにも必要です。PSが発生したとき、またはプロセスが開始されたときは関係ありません。必要なのはA時間だけです。すべてのプロセスはほんの数秒で完了します。
私のコマンドはこれです:
私はこのように行ってみました:
しかし、それは私にhh:mm:ssのような時間を与えます。これよりもっと正確なものが必要です。タイムスタンプが理想的です。
何か案は?
sleep - FreeBSD 9.0 でのプロセスは、どうやら syscall がなく (空の wchan)、割り込み不可能なスリープ状態でハングします。
STDIN から読み取り、TCP 経由でスクライブされたロギング サーバーにデータを送信するカスタム ロギング プロセスがあります。私の場合、STDIN は、httpd.conf で次のように Apache httpd 2.2 に添付されたアクセス ログです。 CustomLog "|/usr/local/bin/serelog" default
私の serelog プロセスは、FreeBSD 9.0 で中断できないスリープ状態になることがあり、そこから復帰しません。ただし、FreeBSD 8、Linux 2.6、Linux 3.1 など、他のオペレーティング システムでも確実に動作します。
途切れないスリープの原因を突き止めるにはどうすればよいですか?
全体の構造は次のようになります: httpd --[PIPE]--> serelog --[TCP-CONNECTION]--> scribe
これまで、次の分析を行いました。
- ps を使用: stat は "D" で、wchan は "-" です。そのため、プロセスが中断不可能なスリープ状態にあり、カーネルランドにある必要があるため、syscallは明らかにありません。これは私にはあまり意味がありません。
- プロセスが状態「D」にあるため、プロセスは kill -9 に期待どおりに反応しません。
- シェルの外部でトラスを serelog に取り付ける: トラスが取り付けられている限り、serelog はスムーズに動作します。トラスを serelog から切り離した直後 (数秒)、serelog は "D" 状態になります。
- 「D」状態になった後にトラスを serelog に接続すると、トラスは何も出力しません
- 「D」状態では、lsof は着信 PIPE がいっぱいであることを示します。「D」状態ではプロセスが「スリープ」し、それ以上読み取ることができないため、これは予想されます。発信 TCP-CONNECTION が空です。
- 「周囲の」Apache httpd サーバーを強制終了すると、serelog プロセスは最終的に (たとえば) 40 分後に終了します。
- 中断できない問題について他の人がフォーラムで報告した内容を確認してもうまくいきませんでした: 私のセットアップには NFS がありません。また、サーバーであるため、ユーザーが CD ドライブやプラグ可能なハードウェアとやり取りすることもありません。
そのため、中断できず、明らかにシステムコールになく、トレースすると確実に機能するプロセスに行き詰まっています。唯一の良い点は、JMeter 負荷テスト (JMeter で 5 スレッド) を介して多数の HTTP 要求を送信したときに、数秒または数分で動作を再現できることです。
デバッグ、カーネル パラメータの調整に関するヒントをいただければ幸いです。
ご挨拶