Sockets en * .plist [cerrado]

1

Mi aplicación necesita crear un socket para todo el sistema (único independientemente del número de usuarios en la Mac). Estoy usando un * .plist para este fin:

<key>Sockets</key>
<dict>
    <key>Listener</key>
    <dict>
        <key>SockPathMode</key>
        <integer>438</integer><!-- 0666 -->
        <key>SockPathName</key>
        <string>/var/tmp/myApp.socket</string>
    </dict>
</dict>

Recientemente tuve un informe de error que fue bastante doloroso de depurar, y finalmente pareció que la falla se debió a que el usuario no tenía un directorio /var/tmp . Así que mis preguntas son:

  • ¿Qué puedo hacer para obtener mensajes de error más significativos cuando no se puede crear el Socket?
  • ¿qué puedo hacer para crear el directorio si no existe?
  • ¿ /var/tmp es el lugar correcto para tales sockets? ¿Debo ir por /tmp en su lugar? ¿O algún otro directorio?

EDITAR

FWIW, acabo de notar que en /var/run parece haber bastantes tomas, algunas lo suficientemente importantes como para que pueda considerar que la Mac no será utilizable si falta el directorio.

$ ls -l /var/run
total 88
-rw-------  1 root             daemon              0 19 jan 15:24 automount.initialized
drwxr-xr-x  3 _assetcache      _assetcache        96 19 jan 15:26 com.apple.AssetCache
----------  1 root             daemon              0 19 jan 15:24 com.apple.WindowServer.didRunThisBoot
-rw-------  1 root             daemon              4 22 jan 11:14 com.apple.dt.instruments.servicehub_63755_505.pid
-r--------  1 root             daemon              0 19 jan 15:24 com.apple.loginwindow.didRunThisBoot
-r--------  1 root             daemon              0 19 jan 15:24 com.apple.mdmclient.daemon.didRunThisBoot
-rw-------  1 root             daemon              0 20 jan 12:16 com.apple.parentalcontrols.webfilterctl.mutex
-rw-r--r--  1 root             daemon              0 20 jan 11:48 com.apple.softwareupdate.availableupdatesupdated
drwxr-xr-x  3 root             daemon             96 19 jan 15:29 com.apple.xpc.smd
srwxrwxrwx  1 root             daemon              0 19 jan 15:24 cupsd
-rw-r--r--  1 root             daemon              3 19 jan 15:24 diskarbitrationd.pid
drwxr-xr-x  3 _displaypolicyd  _displaypolicyd    96 19 jan 15:24 displaypolicyd
lrwxr-xr-x  1 root             daemon             57 22 jan 11:44 docker.sock -> /Users/akim/Library/Containers/com.docker.docker/Data/s60
-rw-r--r--  1 root             daemon             16 19 jan 15:24 fudinit
-rw-r--r--  1 root             daemon              6 21 jan 13:20 hdiejectd.pid
-rw-r--r--  1 root             daemon              3 19 jan 15:24 kdc.pid
srw-rw-rw-  1 root             daemon              0 19 jan 15:24 mDNSResponder
drwx------  3 root             daemon             96 21 jan 13:21 mds
-rw-r--r--  1 root             daemon              3 19 jan 15:24 mds.pid
srwxrwxrwx  1 root             daemon              0 19 jan 15:24 portmap.socket
srwxrwxrwx  1 root             daemon              0 19 jan 15:24 pppconfd
drwxr-xr-x  4 root             daemon            128 19 jan 15:24 racoon
-rw-r--r--  1 root             daemon              4 19 jan 15:24 racoon.pid
-rw-r--r--  1 root             daemon            379 22 jan 13:30 resolv.conf
srw-rw-rw-  1 root             daemon              0 19 jan 15:24 syslog
-rw-r--r--@ 1 root             daemon              3 19 jan 15:24 syslog.pid
-r--r--r--  1 root             daemon              0 19 jan 15:24 systemkeychaincheck.done
srw-rw-rw-  1 root             daemon              0 19 jan 15:24 systemkeychaincheck.socket
srwxrwxrwx  1 root             daemon              0 19 jan 15:24 usbmuxd
-rw-r--r--@ 1 root             daemon           5652 22 jan 11:44 utmpx
srw-------  1 root             daemon              0 19 jan 15:24 vpncontrol.sock
-rw-r--r--  1 root             wheel               0 19 jan 15:24 wifi
    
pregunta akim 22.01.2018 - 11:56

0 respuestas

Lea otras preguntas en las etiquetas