psを使用してコマンドのパラメータが変更されるのはなぜですか?

psを使用してコマンドのパラメータが変更されるのはなぜですか?

頻繁に使用するアプリケーションを実行するときにパラメータを見ると、なぜ異なるように見えますかps

$ redshift -l 12.94:43.75 2>/dev/null 1>&2 &
[1] 8637
$ ps -o cmd= -C redshift
redshift -l 12.94 43.75

欠けているコロンに注意してください。

答え1

詳細はオペレーティングシステムによって異なりますが、ほとんどのシステムではps(または/ procファイルシステム)によって報告されたコマンドラインパラメータを変更できます。たとえば、一部のシステムではargvを直接編集できます。

多くのシステムには、これを実行できるsetproctitleというライブラリ機能があります。したがって、システムでsetproctitleがどのように機能するかを理解するには、setproctitleのマニュアルページとソースコードを調べるのが最善です。

関連情報