Автор Тема: Почему процесс gnome-session слушает 2 порта со случайными номерами  (Прочитано 6152 раз)

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Прослушиваемые порты видны через
netstat -a|grep LISTEN
Командой
pfiles `pgrep gnome-session`|grep AF_INET
        sockname: AF_INET6 ::  port: 33500
        sockname: AF_INET 0.0.0.0  port: 45246
        sockname: AF_INET 127.0.0.1  port: 56080
убедился, что они открыты процессом gnome-session

Название системного вызова открытия сокета тут: http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/sockfs/socksyscalls.c#101

Посмотрим, какие сокеты открывает процесс gnome-session и в каком месте в коде.
dtrace -n 'syscall::so_socket:entry/execname=="gnome-session"/{ ustack(); printf("family = %d, type_w_flags = %d, protocol = %d\n", arg0, arg1, arg2); }'

svcadm restart gdm

__________________

  0  10008                  so_socket:entry
              libc.so.1`_so_socket+0x7
              libsocket.so.1`socket+0x23
              libICE.so.6`_IceTransSocketOpen+0x52
              libICE.so.6`_IceTransSocketOpenCOTSServer+0x4f
              libICE.so.6`_IceTransOpen+0x89
              libICE.so.6`_IceTransOpenCOTSServer+0x10
              libICE.so.6`_IceTransMakeAllCOTSServerListeners+0x11f
              libICE.so.6`IceListenForConnections+0x2d
              gnome-session`setup_listener+0x9c
              gnome-session`gsm_xsmp_server_constructor+0x42
              libgobject-2.0.so.0.2800.8`g_object_newv+0x3ce
              libgobject-2.0.so.0.2800.8`g_object_new_valist+0x59e
              libgobject-2.0.so.0.2800.8`g_object_new+0x3a
              gnome-session`gsm_xsmp_server_new+0x32
              gnome-session`main+0x173
              gnome-session`_start+0x67
family = 2, type_w_flags = 2, protocol = 0 (TCP IPv4)

              libc.so.1`_so_socket+0x7
              libsocket.so.1`socket+0x23
              libORBit-2.so.0.1.0`link_server_setup+0x96
              libORBit-2.so.0.1.0`giop_server_new+0x57
              libORBit-2.so.0.1.0`ORBit_ORB_start_servers+0x2a9
              libORBit-2.so.0.1.0`IOP_generate_profiles+0x68
              libORBit-2.so.0.1.0`ORBit_marshal_object+0x7f
              libORBit-2.so.0.1.0`ORBit_marshal_value+0x39f
              libORBit-2.so.0.1.0`orbit_small_marshal+0xef
              libORBit-2.so.0.1.0`ORBit_small_invoke_stub+0x124
              libORBit-2.so.0.1.0`ORBit_small_invoke_stub_n+0x40
              libORBit-2.so.0.1.0`ORBit_c_stub_invoke+0x73
              libgconf-2.so.4.1.5`ConfigServer_add_client+0x4b
              libgconf-2.so.4.1.5`try_to_contact_server+0x63
              libgconf-2.so.4.1.5`gconf_get_config_server+0x2f
              libgconf-2.so.4.1.5`gconf_engine_connect+0x56
              libgconf-2.so.4.1.5`gconf_engine_get_database+0x14
              libgconf-2.so.4.1.5`gconf_engine_notify_add+0xbe
              libgconf-2.so.4.1.5`gconf_client_add_dir+0xbc
              gnome-session`gsm_manager_init+0xc7
family = 2, type_w_flags = 2, protocol = 6 (TCP IPv6)

По файлу /etc/sock2path.d/system%2Fkernel определяем названия протоколов