![「ps」の [..] はどういう意味ですか? また、そのようなプロセスを作成するにはどうすればよいでしょうか?](https://rvso.com/image/1286479/%E3%80%8Cps%E3%80%8D%E3%81%AE%20%5B..%5D%20%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F%E5%91%B3%E3%81%A7%E3%81%99%E3%81%8B%3F%20%E3%81%BE%E3%81%9F%E3%80%81%E3%81%9D%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
を実行するとps
、次のような結果になります。
root 2 0.0 0.0 0 0 ? S< 00:00 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 00:00 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 00:00 0:00 [events/0]
通常、すべてのデーモン プロセスは[..]
括弧で囲まれます。
それらは何を意味するのでしょうか (もし意味があるなら)? このようなプロセスはどのように作成するのでしょうか?
私が質問する理由は、rcS からシステム デーモンを作成する (プログラムは fork を使用してデーモンを作成する) のですが、ps エントリは次のようになります。
root 207 0.0 0.2 1516 200 ? S 00:00 0:00 /root/testdaemo
[..]
そこで、括弧を持つことが重要なのか、また、そもそもプロセスが括弧をどのように取得するのかが疑問でした。
ありがとう。
答え1
角括弧は、関連付けられたコマンド ラインを持たないプロセス (主にカーネル スレッドと一部のシステム サービス) に使用されます。
argv[0]
私の記憶が正しければ、空の文字列に設定することで、プロセスに対して同じ効果を実現できる可能性があります。
答え2
はい、カーネル サブシステムによって作成されたカーネル スレッドです。カーネル内の kthread_create() または kernel_thread() 関数を使用して作成されます。
答え3
あなたの例では さえ示されていない[...]
ので、あなたが何について話しているのか 100% はわかりません。ただし、argv
Linux では、任意のプログラムの引数を変更することは可能です。引数は の出力に反映されますps
。