Ổ cắm trong * .plist [đã đóng]


1

Ứng dụng của tôi cần tạo một ổ cắm toàn hệ thống (độc lập với số lượng người dùng trên máy Mac). Tôi đang sử dụng * .plist cho đến cuối này:

<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>

Gần đây tôi đã có một báo cáo lỗi khá khó khăn để gỡ lỗi, và cuối cùng có vẻ như lỗi đó là do người dùng không có /var/tmpthư mục. Vì vậy, câu hỏi của tôi là:

  • Tôi có thể làm gì để nhận được thông báo lỗi có ý nghĩa hơn khi không thể tạo Ổ cắm?
  • Tôi có thể làm gì để có được thư mục được tạo nếu nó không tồn tại?
  • /var/tmpnơi thích hợp cho các ổ cắm như vậy? Tôi có nên đi /tmpthay thế? Hoặc một số thư mục khác?

CHỈNH SỬA

FWIW, tôi chỉ nhận thấy rằng /var/rundường như có khá nhiều ổ cắm, một số đủ quan trọng để tôi có thể xem xét Mac sẽ không thể sử dụng được nếu thư mục bị thiếu.

$ 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

Câu hỏi này phù hợp hơn với StackOverflow. /var/tmp/trong lịch sử đã được Apple đề xuất vị trí cho ổ cắm tên miền trên macOS. Bạn đã điều tra các dịch vụ XPC? Chúng thường được các kỹ sư của Apple khuyên dùng để liên lạc giữa các quá trình.
Graham Miln

Chào! Không, tôi đã không nhìn vào các dịch vụ XPC, tôi sẽ. Bởi "trong lịch sử đã" có nghĩa là trước đây /var/tmpvà bây giờ /var/runlà? Tôi dường như không có đủ danh tiếng để chuyển câu hỏi, bạn có gợi ý tôi nên mở một câu hỏi mới trên SO không?
akim

Bạn nên hỏi lại trên StackOverflow - bạn sẽ thu hút câu trả lời tốt hơn từ các nhà phát triển. Trang web này tập trung vào người dùng. Tôi nói trong lịch sử bởi vì Apple đã loại bỏ mã mẫu sử dụng các ổ cắm tên miền có lợi cho việc triển khai dựa trên XPC. /var/tmpphù hợp với quy trình của bên thứ ba.
Graham Miln

/var/tmpđược sở hữu bởi rootvì vậy một cài đặt mà không có vẻ như là một trường hợp bên lề.
nohillside

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.