コマンドを実行しようとしています。
strace -f gnome-terminal --wait |& grep write
次に、開いた端末ウィンドウに入力しls
てEnterを押します。
write
端末内で実行中の Bash サブプロセスに転送される、 、 文字に対応するシステム呼び出しとサブプロセスが出力を書くときのシステム呼び出しを見たいが実行するときにシステム呼び出しが表示されません。呼び出しが発生します。l
s
\n
write
ls
ls
write
実行すると、これらのシステムコールが表示されます。
strace -f xterm |& grep write
strace -f
子プロセスを追跡できないのはなぜですかgnome-terminal
?
答え1
端末エミュレーションを実行する実際の作業は、ユーザーが開始したコマンドの子孫ではgnome-terminal-server
ありません。gnome-terminal
慣れていないいくつかの/または同様の魔法で始まりますgnome-terminal
。つまり、すでに実行されているサービスに端末を起動するように要求します。gnome-terminal-server
systemd
dbus
gnome-terminal-server
PIDを見つけてそこに追加を使用できますstrace -p PID
。タブまたはウィンドウが複数ある場合は、gnome-terminal
すべて追跡されます。