$ sudo lsof +E -a -U -p 1480
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Xorg 717 root 43u unix 0xffff975eacf2d400 0t0 30862 @/tmp/.X11-unix/X0 type=STREAM ->INO=28661 1480,lxtermina,3u
dbus-daem 980 t 34u unix 0xffff975eacf2fc00 0t0 30865 /run/user/1000/bus type=STREAM ->INO=28666 1480,lxtermina,9u
dbus-daem 1073 t 13u unix 0xffff975eacf2c400 0t0 28664 @/tmp/dbus-vtzJFcQ5Cy type=STREAM ->INO=28663 1480,lxtermina,5u
lxtermina 1480 t 3u unix 0xffff975eacf2c000 0t0 28661 type=STREAM ->INO=30862 717,Xorg,43u
lxtermina 1480 t 5u unix 0xffff975eacf2d000 0t0 28663 type=STREAM ->INO=28664 1073,dbus-daem,13u
lxtermina 1480 t 7u unix 0xffff975eacf2f000 0t0 28665 /run/user/1000/.lxterminal-socket- type=STREAM
lxtermina 1480 t 9u unix 0xffff975eacf2e800 0t0 28666 type=STREAM ->INO=30865 980,dbus-daem,34u
lxterminal 프로세스는 Xorg 프로세스와 통신하여 lxterminal의 GUI를 구현합니다.
그렇다면 dbus와 통신하는 목적은 무엇입니까? 그냥 터미널 에뮬레이터인데 왜 dbus를 사용하나요?
감사해요.
답변1
시스템에 여러 개의 DBus 인스턴스가 있을 수 있습니다.
- 이것시스템 버스
/var/run/dbus/system_bus_socket
, 해당 소켓은 루트만 쓸 수 있는 유사한 디렉터리 에 있습니다 . 부팅 시 시작됩니다. - 이것사용자 세션 버스이는 GUI 데스크탑 세션을 시작할 때 시작되고 로그아웃하면 사라집니다.
- 이것장애인용 버스, 원래는 CORBA를 사용했지만 이제는 더 가벼운 DBus로 전환했습니다. 데스크탑 환경의 다양한 접근성 기능을 지원합니다.
프로세스 dbus-daemon
가 자신의 사용자 계정에서 실행되고 있으므로
LXTerminal은 여러 탭을 지원합니다. 프로그램의 모든 인스턴스는 메모리 사용량을 줄이기 위해 동일한 프로세스를 공유합니다.
저는 개인적으로 LXTerminal을 사용하지 않지만 이것이 DBus를 사용하는 주된 이유일 것입니다. lxterminal
바탕 화면 아이콘이나 메뉴를 클릭하여 새 창을 시작하려고 하면 시작 lxterminal
프로세스에서 D-Bus를 사용하여 다른 창이 있는지 확인할 수 있습니다. 인스턴스가 이미 실행 중입니다.
이미 실행 중인 LXTerminal 프로세스가 있는 경우 새 프로세스는 "이 옵션으로 새 창/탭 열기..." DBus 메시지를 이미 실행 중인 프로세스에 보낸 다음 종료됩니다. 이미 실행 중인 LXTerminal 프로세스는 전달된 설정 및/또는 옵션을 기반으로 새 창을 열거나 새 탭을 설정합니다.