タグ付けされた質問 「process」

プロセスは、実行中のコンピュータプログラムのインスタンスです。

5
プロセスを聞く方法はありますか?
LinuxとUNIXでプロセスをリッスンする方法があるかどうか知りたい-プロセスがいつ終了し、プロセスの終了コードが何であるか(スクリプト)。 X数秒実行しps -ef | grep PIDて、プロセスがまだ生きているかどうかを確認するスクリプトを作成したくありません。プロセスが終了したときに通知する方法と、その終了コードを教えてください。

1
ネットワークインターフェイスを使用してプロセスを検索する
ネットワークインターフェイスを安全にシャットダウンする方法を見つけようとしています。つまり、プロセスを妨害することはありません。このため、現在そのインターフェイスを使用しているプロセスを見つける必要があります。ツールが好きss、netstatまたはlsofプロセスがオープンしているソケットを持って便利示しているが、それらは表示されませんwpa_supplicant、dhcpcd、hostapdなど。 これらのプロセスを一般的な方法で検出する方法はありますか?dhcpcdは、たまにソケットを開くだけのプログラムなので、そうではないかもしれませんが、wpa_supplicantとhostapdがそのインターフェイスに対して「何かを」実行して、検出可能であり、おそらく関連するPIDにもつながると想定しています。

1
すべてのPID「utime」の合計は、システムの合計utimeですか?
ユーザーの合計CPU時間を測定するために、以下の「utime」フィールドを使用しています/proc/[pid]/stat。 utime %lu Amount of time that this process has been scheduled in user mode, measured in clock ticks (divide by sysconf(_SC_CLK_TCK). This includes guest time, guest_time (time spent running a virtual CPU, see below), so that applications that are not aware of the guest time field do not lose …
9 process  cpu  proc 

2
Linuxの表示プロセスを誤って一時停止しました
Linux Mint 19をインストールした後、vsincがLinuxのfpsにどのように影響するかを確認したかったので、次のコマンドを入力しました。 CLUTTER_SHOW_FPS=1 cinnamon --replace しばらくして、誤ってCtrl+ Zを押して、そのプロセスを一時停止しました。すぐにBashシェルとマウスカーソル以外のすべてがフリーズしたため、fgコマンドを入力できません。 再起動せずにそのプロセスの一時停止を解除する方法はありますか?次にCtrl+ を使用Cしてそのプロセスを正しく終了する必要がありますか?
8 process 

1
UNIXパイプの反対側のプロセスの名前?
2つのプロセスがパイプで接続されている場合、 > cmd1 | cmd2 cmd1パイプの反対側のプロセスの名前(またはPID)(またはPID)を確認する方法はありますcmd2か() また、その逆、cmd2の名前/ PIDを取得する方法はありますcmd1か? 私はそこにあることを知っているisatty(3)一方の側についてもう少し知るための方法があるかどうか、私は疑問に思ったので、ターミナル出力がに行く(または入力から来ている)かどうかをチェックします。
8 linux  process  pipe  proc 

3
コマンドラインからプロセスが停止しているかどうかを確認するにはどうすればよいですか?
私はpidを持っていますが、使用しているプログラムを停止しました kill -stop PID 今、私はそれを続けたいです kill -cont PID ただし、すでに停止している場合のみです。停止しているか実行しているかを確認するにはどうすればよいですか?

3
PIDが不足するとどうなりますか?
これは決して起こらないので、これは純粋に学術的な質問です。 PIDがタイプpid_tとして格納されており、任意精度型ではない場合、一度に存在できるPIDの数には制限があります。PIDがオーバーフローしたときの動作は定義されていますか? 65536番目のプロセスで/ sbin / initが強制終了され、カーネルパニックが発生しますか?または、安全対策が講じられていますか?
8 process  proc 

1
プロセスのスワップされたすべてのメモリをスワップから引き出します
ディスクに書き込むことなく、プロセスのスワップされたすべてのメモリをスワップからすばやく引き出すにはどうすればよいでしょうか。 質問を必要とする体系的な問題は他の当事者によって処理されているため、この問題のコンテキストは取るに足らないものです。しかし、現在、OpenVZノードのスワップ領域を頻繁に解放しなければならないという問題があり、負荷とIO待機が非常に高くなっています。 多くの場合、スワップは主に、個々のコンテナーで実行されている少数のMySQLおよびclamdプロセスによって消費されます。これらのサービスを再起動すると、スワップが解放され、ノードの問題が解決されますが、明らかな理由により望ましくありません。 ノードが過負荷で現在の方法よりも速いものが必要なときに、これらのプロセスからスワップをすばやく解放する方法を探しています。 unswap(){ [[ $1 && $(ls /proc/$1/maps) ]] && ((gcore -o /tmp/deleteme $1 &>/dev/null; rm -fv /tmp/deleteme.$1)&) 2>/dev/null || echo "must provide valid pid";};unswap このコアダンプにより、すべてのRAMが強制的にアクセスされ、スワップから解放されますが、ファイルへの書き込みを回避する方法はまだ見つけていません。また、現在スワップされているアドレス範囲を分離してその部分を/ dev / nullにダンプできれば、プロセスはより高速になるようですが、それを行う方法はまだ見つけていません。 これは巨大なノードなので、通常のswapoff / swaponメソッドは非常に時間がかかります。また、ノードの構成は私の制御下にないため、根本原因の修正はこの質問の一部ではありません。ただし、何も殺したり、再起動したりせずに、スワップのかなりの部分をすばやく解放できる方法についての洞察は、高く評価されます。 環境:CentOS 6.7 / OpenVZ 後でこれにつまずくかもしれない人のための更新: Jlongの入力を使用して、次の関数を作成しました。 unswap(){ (awk -F'[ \t-]+' '/^[a-f0-9]*-[a-f0-9]* /{recent="0x"$1" 0x"$2}/Swap:/&&$2>0{print recent}' /proc/$1/smaps | …

1
/ proc / pid / mapsの共有ライブラリマッピング
/proc/pid/maps同じライブラリのいくつかのレコードが含まれているのはなぜですか?次に例を示します。 7fae7db9f000-7fae7dc8f000 r-xp 00000000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 7fae7dc8f000-7fae7de8f000 ---p 000f0000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 7fae7de8f000-7fae7de97000 r--p 000f0000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 7fae7de97000-7fae7de99000 rw-p 000f8000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 これは何を意味するのでしょうか ?

1
/ proc / <pid> / net / devとは何ですか?
私は、中のもののように、プロセスごとのネットワークI / Oのカウンターに興味/proc/net/devと私はそれが下だと思ったものを見つけ/proc/&lt;pid&gt;すなわち、/proc/&lt;pid&gt;/net/dev。しかし、システムと同じカウンターが含まれているため、それは簡単すぎました。 システムとの差が&lt;pid&gt;同じ場合、同じカウンターが表示されます*。だから、それは何を表すべきなのだろうと思いますか?それとも、/proc/net/devアクセス許可を/proc/net/&lt;pid&gt;/devグローバルではなくに設定することにより、特定のプロセスに読み取りを許可する方法にすぎませんか? man procこれはドキュメント化されておらず、http://man7.org/linux/man-pages/man5/proc.5.htmlもドキュメント化されていません ディストリビューション:CentOS 7.1 w /カーネル 3.10.0-229.el7.x86_64 *diff &lt;(cat /proc/&lt;pid&gt;/net/dev) &lt;(cat /proc/net/dev)

2
プロセスが実行している命令を判別する方法は?
私はstraceとltraceについて知っていますが、それはそれぞれ、プロセスが実行しているシステムコールとライブラリコールを教えてくれるだけです。プロセスが実行している命令を正確に知りたいのですが。アセンブリ、または可能であればCとアセンブリの間の何らかの中間点。バイナリがデバッグシンボルでコンパイルされていないと仮定すると、可能性が高いので、最初のオプションに傾倒します。 使用例:プロセスがハングしているように見え、straceまたはltraceからの出力がありません。プロセスが「何か」を実行しているかどうかを確認します。これは停止の問題を解決することに似ていると思うので、これを判断するのは難しいかもしれないと思います。ただし、有用なデータを収集できる可能性があります。 2番目の使用例:好奇心。アセンブリ命令のリスト全体をテキストリストにダンプすると興味深いでしょう。 私の推測では、gdbを使用してこれを行うことができますが、これは私が作成したプログラムのデバッグについてではなく、gdbを使用して実行中のプロセスの状態をチェックするためです。 OSはCentOS 6です。

4
chdir(<directory>)はシェルを終了した後にディレクトリを変更しません
Cプロジェクトディレクトリに変更する簡単なプログラムを作成したいと思いました。その内容は次のとおりです。 #include &lt;unistd.h&gt; int main() { chdir("/home/enedil/projects/algo"); return 0; } 私はそれを次のコマンドでコンパイルしました(pro.cはそのファイル名です): gcc pro.c -o /usr/local/bin/pro エラーも警告もありませんでした。しかし、それを実行しても、ディレクトリは変更されません。どうして?
8 process  c  cd-command 


3
pidofとpgrepの動作が異なるのはなぜですか?
私は/etc/init.d/myserviceこのようなサービスを初期化するためのinitスクリプトを持っています: ... start() { ... daemon /usr/sbin/myservice ... } stop() { ... pgrep myservice pidof myservice ps -ef | grep myservice ... } そして、私がサービスを停止しようとすると、これは出力です: 10000 10001 10000 root 10000 1 0 09:52 ? 00:00:02 /usr/sbin/myservice root 9791 9788 0 10:06 pts/1 00:00:00 /bin/sh /sbin/service myservice stop root 10001 9791 1 …

3
2つのプロセスを互いにパイプできますか?
で、このページから設計・4.4BSDオペレーティングシステムの実装、それはと言われます。 パイプとソケットの主な違いは、パイプが通信チャネルをセットアップするために共通の親プロセスを必要とすることです。 ただし、正しく記録した場合、新しいプロセスを作成する唯一の方法はfork、既存のプロセスに対するものです。したがって、2つのプロセスが共通の祖先を持つことができなかった方法を実際に確認することはできません。次に、プロセスの任意のペアを互いにパイプできると考えるのは正しいことでしょうか。
8 linux  process  pipe  bsd  fork 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.