如果我的机器(OSX 10.9.2)没有连接到互联网,并且我想使用以下命令建立 pptp 连接点对点:
$ sudo /usr/sbin/pppd serviceid 5BE14D3A-7B94-4704-ADE0-9883B189199E debug logfile /tmp/ppp.log plugin /System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp plugin pptp.ppp remoteaddress 11.22.33.44 redialcount 1 redialtimer 5 idle 1800 mru 1500 mtu 1448 receive-all novj 0:0 noipdefault ipcp-accept-local ipcp-accept-remote user bbbbbb password cccccc hide-password noaskpassword looplocal defaultroute usepeerdns mppe-128 nodetach logfd 1
pppd 输出:
Thu Mar 27 15:09:30 2014 : publish_entry SCDSet() failed: Success!
Thu Mar 27 15:09:30 2014 : publish_entry SCDSet() failed: Success!
并以退出代码终止25:
$ echo $?
25
为什么 pppd 返回退出代码而不是退出代码有记录的?预期的退出代码在 [0, 19] 范围内。这个退出代码从哪里来?这个退出代码有描述吗? pppd 是否还有其他“隐藏”退出代码?
如果我连接到互联网并运行相同的命令,pptp 连接就会建立。
最后几行桁架输出是:
$ /usr/bin/sudo dtruss /usr/sbin/pppd serviceid 5BE14D3A-7B94-4704-ADE0-9883B189199E debug logfile /tmp/ppp.log plugin /System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp plugin pptp.ppp remoteaddress 11.22.33.44 redialcount 1 redialtimer 5 idle 1800 mru 1500 mtu 1448 receive-all novj 0:0 noipdefault ipcp-accept-local ipcp-accept-remote user bbbbbbb password cccccccc hide-password noaskpassword looplocal defaultroute usepeerdns mppe-128 nodetach logfd 1
Fri Mar 28 10:31:10 2014 : publish_entry SCDSet() failed: Success!
Fri Mar 28 10:31:10 2014 : publish_entry SCDSet() failed: Success!
Fri Mar 28 10:31:10 2014 : PPTP connecting to server '11.22.33.44' (77.75.123.187)...
Fri Mar 28 10:31:10 2014 : PPTP connect errno = 49 Can't assign requested address
SYSCALL(args) = return
close(0x3) = 0 0
getuid(0x0, 0x1103, 0x7FFF772B14E0) = 0 0
getgid(0x0, 0x1103, 0x0) = 0 0
getuid(0x7FDEA8D00A80, 0x0, 0x1) = 0 0
seteuid(0x0, 0x0, 0x0) = 0 0
open_nocancel("/var/root/.ppprc\0", 0x0, 0x1B6) = -1 Err#2
seteuid(0x0, 0x7FFF76AB4430, 0xFFFFFFFFFFFFFFFF) = 0 0
open("/tmp/ppp.log\0", 0xA09, 0x1A4) = -1 Err#17
open("/tmp/ppp.log\0", 0x9, 0xFFFFFFFFFFFFFFFF) = 3 0
open_nocancel("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp\0", 0x1100004, 0x7FDEA8D00D70) = 4 0
__sysctl(0x7FFF54902F38, 0x2, 0x7FFF76AB4180) = 0 0
fstatfs64(0x4, 0x7FFF54902F88, 0x0) = 0 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 88 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 0 0
close_nocancel(0x4) = 0 0
open_nocancel("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents\0", 0x1100004, 0x7FDEA8D01173) = 4 0
fstatfs64(0x4, 0x7FFF54902F58, 0x0) = 0 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 240 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 0 0
close_nocancel(0x4) = 0 0
open("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/Info.plist\0", 0x0, 0x1B6) = 4 0
fstat64(0x4, 0x7FFF54903218, 0x0) = 0 0
read(0x4, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>BuildMachineOSBuild</key>\n\t<string>13C40z</string>\n\t<key>CFBundleDevelopmentReg", 0x4F1) = 1265 0
close(0x4) = 0 0
stat64("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/MacOS/PPPDialogs\0", 0x7FFF54903C08, 0x7FFF54904156) = 0 0
stat64("/usr/lib/libesp.dylib\0", 0x7FFF549031C8, 0x7FFF54904070) = -1 Err#2
stat64("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/MacOS/PPPDialogs\0", 0x7FFF54902E88, 0x7FFF54903D30) = 0 0
stat64("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/MacOS/PPPDialogs\0", 0x7FFF54903B18, 0xF9A90) = 0 0
open("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/MacOS/PPPDialogs\0", 0x0, 0x1FF) = 4 0
read(0x4, "\317\372\355\376\a\0", 0x200) = 512 0
close(0x4) = 0 0
stat64("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/MacOS/PPPDialogs\0", 0x7FFF54902E68, 0x7FFF54903D10) = 0 0
open("/System/Library/SystemConfiguration/PPPController.bundle/Contents/PlugIns/PPPDialogs.ppp/Contents/MacOS/PPPDialogs\0", 0x0, 0x0) = 4 0
pread(0x4, "\317\372\355\376\a\0", 0x1000, 0x0) = 4096 0
fcntl(0x4, 0x3D, 0x7FFF54901190) = 0 0
mmap(0x10B38C000, 0x2000, 0x5, 0x12, 0x4, 0x0) = 0x10B38C000 0
mmap(0x10B38E000, 0x1000, 0x3, 0x12, 0x4, 0x2000) = 0x10B38E000 0
mmap(0x10B38F000, 0x26F0, 0x1, 0x12, 0x4, 0x3000) = 0x10B38F000 0
close(0x4) = 0 0
open_nocancel("/System/Library/Extensions/pptp.ppp\0", 0x1100004, 0x7FDEA8D02370) = 4 0
fstatfs64(0x4, 0x7FFF54902F88, 0x0) = 0 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 88 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 0 0
close_nocancel(0x4) = 0 0
open_nocancel("/System/Library/Extensions/pptp.ppp/Contents\0", 0x1100004, 0x7FDEA8D02573) = 4 0
fstatfs64(0x4, 0x7FFF54902F58, 0x0) = 0 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 232 0
getdirentries64(0x4, 0x7FDEAA000600, 0x1000) = 0 0
close_nocancel(0x4) = 0 0
open("/System/Library/Extensions/pptp.ppp/Contents/Info.plist\0", 0x0, 0x1B6) = 4 0
fstat64(0x4, 0x7FFF54903218, 0x0) = 0 0
geteuid(0x100000001103, 0x110000001100, 0x10B356308) = 0 0
setsid(0x50000000603, 0x60000000600, 0x7FFF772B15A8) = 3077 0
socket(0x22, 0x3, 0x1) = 3 0
connect(0x3, 0x7FFF549046B0, 0x8) = 0 0
fcntl(0x3, 0x3, 0x0) = 2 0
fcntl(0x3, 0x4, 0x6) = 0 0
socket(0x2, 0x2, 0x0) = 4 0
open_nocancel("/usr/sbin\0", 0x1100004, 0x7FFF922AEB6E) = 5 0
fstatfs64(0x5, 0x7FFF549031B8, 0x0) = 0 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 4080 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 4072 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 648 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 0 0
close_nocancel(0x5) = 0 0
stat64("/usr/sbin/Contents\0", 0x7FFF549039D8, 0x7FFF54903ABF) = -1 Err#2
stat64("/usr/sbin/Resources\0", 0x7FFF549039D8, 0x7FFF54903ABF) = -1 Err#2
stat64("/usr/sbin/Support Files\0", 0x7FFF549039D8, 0x7FFF54903ABF) = -1 Err#2
stat64("/usr/sbin\0", 0x7FFF54903F58, 0x7FFF5490406B) = 0 0
open_nocancel("/usr/sbin\0", 0x1100004, 0x7FFF922AEB6E) = 5 0
fstatfs64(0x5, 0x7FFF54903188, 0x0) = 0 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 4080 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 4072 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 648 0
getdirentries64(0x5, 0x7FDEAA000600, 0x1000) = 0 0
close_nocancel(0x5) = 0 0
stat64("/usr/sbin/pppd\0", 0x7FFF54903DC8, 0x7FFF54903E7E) = 0 0
open("/usr/sbin/pppd\0", 0x0, 0x1FF) = 5 0
read(0x5, "\317\372\355\376\a\0", 0x200) = 512 0
close(0x5) = 0 0
geteuid(0x7FDEA8D00030, 0x7FFF76F80258, 0x49656E69) = 0 0
kevent64(0x5, 0x7FFF549043A8, 0x1) = 1 0
open("/dev/null\0", 0x2, 0x0) = 6 0
__sysctl(0x7FFF54903AC0, 0x2, 0x7FFF54903AD0) = 0 0
getuid(0x7FDEAA001743, 0x7FFF54903D60, 0x0) = 0 0
getgid(0x7FDEAA001748, 0x7FFF54903D60, 0x0) = 0 0
sigaction(0x1, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x2, 0x7FFF54904758, 0x0) = 0 0
sigaction(0xF, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x14, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x12, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x13, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x1E, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x1F, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x6, 0x7FFF54904758, 0x0) = 0 0
sigaction(0xE, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x8, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x4, 0x7FFF54904758, 0x0) = 0 0
sigaction(0xD, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x3, 0x7FFF54904758, 0x0) = 0 0
sigaction(0xB, 0x7FFF54904758, 0x0) = 0 0
sigaction(0xA, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x7, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x1B, 0x7FFF54904758, 0x0) = 0 0
sigaction(0xC, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x5, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x1A, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x18, 0x7FFF54904758, 0x0) = 0 0
sigaction(0x19, 0x7FFF54904758, 0x0) = 0 0
stat64("/System/Library/Frameworks/Security.framework/Security\0", 0x7FFF549040D0, 0x7FFF8E1A1463) = 0 0
stat64("/System/Library/Frameworks/Security.framework/Security\0", 0x7FFF54903188, 0x7FFF54904030) = 0 0
csops(0xC05, 0x7, 0x7FFF54904510) = 0 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
kevent64(0x5, 0x0, 0x0) = 1 0
kevent64(0x5, 0x10B3AC3C8, 0x1) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
kevent64(0x5, 0x0, 0x0) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
kevent64(0x5, 0x7FFF75519130, 0x1) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
kevent64(0x5, 0x10BC80D88, 0x1) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
__sysctl(0x7FFF54903A90, 0x2, 0x7FFF54903AA0) = 0 0
getuid(0x7FDEAA00170E, 0x7FFF54903D30, 0x0) = 0 0
getgid(0x7FDEAA001713, 0x7FFF54903D30, 0x0) = 0 0
csops(0x0, 0x0, 0x7FFF54903F04) = 0 0
issetugid(0x0, 0x0, 0x0) = 0 0
pread(0x3, "\312\376\272\276\0", 0x1000, 0x0) = 4096 0
pread(0x3, "\317\372\355\376\a\0", 0x1000, 0x1000) = 4096 0
fcntl(0x3, 0x3D, 0x7FFF54901350) = 0 0
mmap(0x10B357000, 0x2000, 0x5, 0x12, 0x3, 0x1000) = 0x10B357000 0
mmap(0x10B359000, 0x1000, 0x3, 0x12, 0x3, 0x3000) = 0x10B359000 0
mmap(0x10B35A000, 0x2050, 0x1, 0x12, 0x3, 0x4000) = 0x10B35A000 0
close(0x3) = 0 0
stat64("/usr/lib/libbsm.0.dylib\0", 0x7FFF54902D98, 0x7FFF54903C30) = 0 0
stat64("/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration\0", 0x7FFF54902D98, 0x7FFF54903C30) = 0 0
stat64("/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation\0", 0x7FFF54902D98, 0x7FFF54903C30) = 0 0
stat64("/usr/lib/libSystem.B.dylib\0", 0x7FFF54902D98, 0x7FFF54903C30) = 0 0
stat64("/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit\0", 0x7FFF54902D98, 0x7FFF54903C30) = 0 0
stat64("/System/Library/Frameworks/Security.framework/Versions/A/Security\0", 0x7FFF54902D98, 0x7FFF54903C30) = 0 0
stat64("/usr/lib/system/libcache.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libcommonCrypto.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libcompiler_rt.dylib\0", 0x7FFF54902908, 0x7FFF549037A0 = 0 0
stat64("/usr/lib/system/libcopyfile.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libcorecrypto.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libdispatch.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libdyld.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libkeymgr.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/liblaunch.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libmacho.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libquarantine.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libremovefile.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_asl.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_blocks.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_c.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_configuration.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_dnssd.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_info.dylib\0", 0x7FFF54902908, 0x7FFF549037A0 = 0 0
stat64("/usr/lib/system/libsystem_kernel.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_m.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_malloc.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_network.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_notify.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_platform.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_pthread.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_sandbox.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libsystem_stats.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libunc.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libunwind.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/system/libxpc.dylib\0", 0x7FFF54902908, 0x7FFF549037A0) = 0 0
stat64("/usr/lib/libobjc.A.dylib\0", 0x7FFF54901B48, 0x7FFF549029E0) = 0 0
stat64("/usr/lib/libauto.dylib\0", 0x7FFF54901B48, 0x7FFF549029E0) = 0 0
stat64("/usr/lib/libc++abi.dylib\0", 0x7FFF549015F8, 0x7FFF54902490) = 0 0
stat64("/usr/lib/libc++.1.dylib\0", 0x7FFF549015F8, 0x7FFF54902490) = 0 0
stat64("/usr/lib/libDiagnosticMessagesClient.dylib\0", 0x7FFF549014D8, 0x7FFF54902370) = 0 0
stat64("/usr/lib/libicucore.A.dylib\0", 0x7FFF54902B18, 0x7FFF549039B0) = 0 0
stat64("/usr/lib/libz.1.dylib\0", 0x7FFF54902B18, 0x7FFF549039B0) = 0 0
stat64("/usr/lib/system/libkxld.dylib\0", 0x7FFF54902C48, 0x7FFF54903AE0) = 0 0
stat64("/usr/lib/libxar.1.dylib\0", 0x7FFF54902BA8, 0x7FFF54903A40) = 0 0
stat64("/usr/lib/libsqlite3.dylib\0", 0x7FFF54902BA8, 0x7FFF54903A40) = 0 0
stat64("/usr/lib/libpam.2.dylib\0", 0x7FFF54902BA8, 0x7FFF54903A40) = 0 0
stat64("/usr/lib/libOpenScriptingUtil.dylib\0", 0x7FFF54902BA8, 0x7FFF54903A40) = 0 0
stat64("/usr/lib/libbz2.1.0.dylib\0", 0x7FFF54902A78, 0x7FFF54903910) = 0 0
stat64("/usr/lib/libxml2.2.dylib\0", 0x7FFF54902A78, 0x7FFF54903910) = 0 0
getpid(0x7FFF54903CF8, 0x10B352004, 0xEA60) = 3077 0
shm_open(0x7FFF92E96CE4, 0x0, 0x0) = 3 0
mmap(0x0, 0x1000, 0x1, 0x1, 0x3, 0x0) = 0x10B38B000 0
close_nocancel(0x3) = 0 0
geteuid(0x20000000303, 0x30000000300, 0x10B356308) = 0 0
__sysctl(0x7FFF54904640, 0x2, 0x7FFF54904650) = 0 0
umask(0x1FF, 0x0, 0xFFFFFFFFFFFFFFE0) = 18 0
umask(0x12, 0x0, 0x0) = 511 0
getuid(0x12, 0x0, 0x0) = 0 0
getgroups(0x10, 0x10B33EE20, 0x0) = 13 0
__sysctl(0x7FFF54904738, 0x2, 0x7FFF5490472C) = 0 0
getrlimit(0x1008, 0x7FFF54903DA0, 0x7FFF8BF3CE7C) = 0 0
open_nocancel("/etc/ppp/options\0", 0x0, 0x1B6) = -1 Err#2
getuid(0x4, 0x7FFF76AB4430, 0xFFFFFFFFFFFFFFFF) = 0 0
read(0x4, "\317\372\355\376\a\0", 0x200) = 512 0
open_nocancel("/etc/ppp/postoptions\0", 0x0, 0x1B6) = -1 Err#2
geteuid(0x20000000303, 0x30000000300, 0x7FFF772B15A8) = 0 0
socket(0x22, 0x3, 0x1) = 4 0
close(0x4) = 0 0
close(0x3) = 0 0
getuid(0x7FDEA8E000C0, 0x0, 0xFFFFFFFFFFFFFF01) = 0 0
getgid(0x7FDEA8E000C0, 0x0, 0x0) = 0 0
write(0x1, "Fri Mar 28 10:31:10 2014 : \0", 0x1B) = 27 0
write(0x1, "publish_entry SCDSet() failed: Success!\0", 0x27) = 39 0
write(0x1, "\n\0", 0x1) = 1 0
__sysctl(0x7FFF54902800, 0x2, 0x7FFF54902810) = 0 0
getuid(0x7FDEA9802330, 0x7FFF54902AA0, 0x0) = 0 0
getgid(0x7FDEA9802335, 0x7FFF54902AA0, 0x0) = 0 0
write(0x1, "Fri Mar 28 10:31:10 2014 : \0", 0x1B) = 27 0
write(0x1, "publish_entry SCDSet() failed: Success!\0", 0x27) = 39 0
write(0x1, "\n\0", 0x1) = 1 0
guarded_kqueue_np(0x7FFF54903E98, 0x3, 0x7FFF86283A77) = 5 0
kevent64(0x5, 0x7FFF86296C48, 0x1) = 0 0
workq_kernreturn(0x10, 0x0, 0x58) = 0 0
workq_open(0x10, 0x0, 0x0) = 0 0
bsdthread_create(0x7FFF86283E77, 0x7FFF75518940, 0x10000) = 188403712 0
kevent64(0x5, 0x7FFF54903F18, 0x1) = 1 0
kevent64(0x5, 0x10BC80D88, 0x1) = 1 0
kevent64(0x5, 0x0, 0x0) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
thread_selfid(0x0, 0x1DC0, 0x7FFF65505550) = 88904 0
shared_region_check_np(0x7FFF54901E38, 0x10B2FB000, 0x4) = 0 0
stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x7FFF54902FE8, 0x7FFF54903F20 = 0 0
open("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x0, 0x0) = 3 0
ioctl(0x3, 0x80086804, 0x7FFF54903D78) = 0 0
kevent64(0x5, 0x7FFF75519130, 0x1) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
thread_selfid(0x10BD04000, 0x7FFF77A55258, 0x1010101) = 88912 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
open("/dev/dtracehelper\0", 0x2, 0x7FFF54903DF0) = 3 0
__sysctl(0x7FFF54903648, 0x2, 0x7FFF54903658) = 0 0
thread_selfid(0x7FFF77A55310, 0x7FFF77A55258, 0x10101) = 88904 0
bsdthread_register(0x7FFF92F30FBC, 0x7FFF92F30FAC, 0x2000) = 0 0
mprotect(0x10B353000, 0x88, 0x1) = 0 0
mprotect(0x10B35D000, 0x1000, 0x0) = 0 0
mprotect(0x10B373000, 0x1000, 0x0) = 0 0
mprotect(0x10B374000, 0x1000, 0x0) = 0 0
mprotect(0x10B38A000, 0x1000, 0x0) = 0 0
mprotect(0x10B355000, 0x1000, 0x1) = 0 0
mprotect(0x10B353000, 0x88, 0x3) = 0 0
mprotect(0x10B353000, 0x88, 0x1) = 0 0
issetugid(0x7FFF75518480, 0x7FFFFFE00034, 0x7FFFFFE00036) = 0 0
getpid(0x1, 0x10B356000, 0x49656E69) = 3077 0
__mac_syscall(0x7FFF853DCE3F, 0x2, 0x7FFF549034C8) = 0 0
stat64("/AppleInternal\0", 0x7FFF54903548, 0x0) = -1 Err#2
audit_session_self(0x7FFF54903400, 0x7FFF54903238, 0x4) = 4099 0
geteuid(0x7FFF54903400, 0x7FFF54903238, 0x0) = 0 0
getegid(0x7FFF54903400, 0x7FFF54903238, 0x0) = 0 0
getaudit_addr(0x7FFF549034D8, 0x30, 0x0) = 0 0
csops(0xC05, 0x7, 0x7FFF549030C0) = 0 0
getuid(0x7FFF5490371C, 0x7FFF54903718, 0x7FFF54904960) = 0 0
geteuid(0x103, 0x10000000100, 0x7FFF778F8198) = 0 0
getuid(0x103, 0x10000000100, 0x0) = 0 0
__sysctl(0x7FFF54902BC0, 0x4, 0x7FFF54902BD8) = 0 0
issetugid(0x7FFF778D3DC0, 0x0, 0x7FDEA8C062C8) = 0 0
getuid(0x7FFF54902EE4, 0x0, 0x7FFF54904960) = 0 0
issetugid(0x7FFF8808BA90, 0x7FFF549045F4, 0x7FFF54904960) = 0 0
issetugid(0x7FFF758FA678, 0x0, 0x0) = 0 0
read(0x4, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>BuildMachineOSBuild</key>\n\t<string>13C40z</string>\n\t<key>CFBundleDevelopmentReg", 0x4E5) = 1253 0
close(0x4) = 0 0
stat64("/System/Library/Extensions/pptp.ppp/Contents/MacOS/PPTP\0", 0x7FFF54903C08, 0x7FFF54904156) = 0 0
stat64("/System/Library/Extensions/pptp.ppp/Contents/MacOS/PPTP\0", 0x7FFF54902E88, 0x7FFF54903D30) = 0 0
stat64("/System/Library/Extensions/pptp.ppp/Contents/MacOS/PPTP\0", 0x7FFF54903B18, 0xF4290) = 0 0
open("/System/Library/Extensions/pptp.ppp/Contents/MacOS/PPTP\0", 0x0, 0x1FF) = 4 0
close(0x4) = 0 0
stat64("/System/Library/Extensions/pptp.ppp/Contents/MacOS/PPTP\0", 0x7FFF54902E68, 0x7FFF54903D10) = 0 0
open("/System/Library/Extensions/pptp.ppp/Contents/MacOS/PPTP\0", 0x0, 0x0) = 4 0
pread(0x4, "\317\372\355\376\a\0", 0x1000, 0x0) = 4096 0
fcntl(0x4, 0x3D, 0x7FFF54901170) = 0 0
mmap(0x10B392000, 0x5000, 0x5, 0x12, 0x4, 0x0) = 0x10B392000 0
mmap(0x10B397000, 0x1000, 0x3, 0x12, 0x4, 0x5000) = 0x10B397000 0
mmap(0x10B398000, 0x3B00, 0x1, 0x12, 0x4, 0x6000) = 0x10B398000 0
close(0x4) = 0 0
__sysctl(0x7FFF54902800, 0x2, 0x7FFF54902810) = 0 0
getuid(0x7FDEA9001D30, 0x7FFF54902AA0, 0x0) = 0 0
getgid(0x7FDEA9001D35, 0x7FFF54902AA0, 0x0) = 0 0
access("/etc/localtime\0", 0x4, 0x7) = 0 0
open_nocancel("/etc/localtime\0", 0x0, 0x0) = 5 0
fstat64(0x5, 0x7FFF54902B30, 0x0) = 0 0
read_nocancel(0x5, "TZif\0", 0x2A64) = 1323 0
close_nocancel(0x5) = 0 0
thread_selfid(0x10B3AD000, 0x7FFF77A55258, 0x1010101) = 88910 0
__pthread_sigmask(0x1, 0x10B3ACECC, 0x0) = 0 0
kevent64(0x5, 0x10B3AC458, 0x1) = 1 0
madvise(0x10B401000, 0x1000, 0x5) = 0 0
madvise(0x10B601000, 0x1000, 0x5) = 0 0
kevent64(0x5, 0x10B3AC4F8, 0x1) = 1 0
kevent64(0x5, 0x0, 0x0) = 1 0
madvise(0x10B801000, 0x1000, 0x5) = 0 0
kevent64(0x5, 0x10B3AC4F8, 0x1) = 1 0
thread_selfid(0x10BC81000, 0x7FFF77A55258, 0x1010101) = 88911 0
kevent64(0x5, 0x10BC80D28, 0x1) = 1 0
kevent64(0x5, 0x7FFF75519130, 0x1) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
kevent64(0x5, 0x0, 0x0) = 1 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
socket(0x20, 0x3, 0x1) = 7 0
ioctl(0x7, 0x800C6502, 0x7FFF549042D0) = 0 0
__sysctl(0x7FFF54902460, 0x2, 0x7FFF54902470) = 0 0
getuid(0x7FDEA9001D45, 0x7FFF54902700, 0x0) = 0 0
getgid(0x7FDEA9001D4A, 0x7FFF54902700, 0x0) = 0 0
write(0x1, "Fri Mar 28 10:31:10 2014 : \0", 0x1B) = 27 0
write(0x1, "PPTP connecting to server '11.22.33.44' (11.22.33.44)...\0", 0x3C) = 60 0
write(0x1, "\n\0", 0x1) = 1 0
socket(0x2, 0x1, 0x0) = 8 0
setsockopt(0x8, 0x6, 0x20) = 0 0
connect(0x8, 0x7FFF549042E0, 0x10) = -1 Err#49
__sysctl(0x7FFF54902460, 0x2, 0x7FFF54902470) = 0 0
getuid(0x7FDEA9001D3F, 0x7FFF54902700, 0x0) = 0 0
getgid(0x7FDEA9001D44, 0x7FFF54902700, 0x0) = 0 0
write(0x1, "Fri Mar 28 10:31:10 2014 : \0", 0x1B) = 27 0
write(0x1, "PPTP connect errno = 49 Can't assign requested address\0", 0x36) = 54 0
write(0x1, "\n\0", 0x1) = 1 0
close(0x7) = 0 0
close(0x8) = 0 0
workq_kernreturn(0x20, 0x0, 0x1) = 0 0
kevent64(0x5, 0x7FFF75519130, 0x1) = -1 Err#4
十六进制的 25 是 0x19,但这个数字没有出现在任何地方。
答案1
在OSX 1.9 pppd 源代码,我在以下位置找到了这个Helpers/pppd/pppd.h
:
#ifdef __APPLE__
#define EXIT_TERMINAL_FAILED 20
#define EXIT_DEVICE_ERROR 21
#endif
#ifdef MAXOCTETS
#ifdef __APPLE__
#define EXIT_TRAFFIC_LIMIT 22
#else
#define EXIT_TRAFFIC_LIMIT 20
#define EXIT_CNID_AUTH_FAILED 21
#endif
#endif
#ifdef __APPLE__
#define EXIT_PEER_NOT_AUTHORIZED 23
#define EXIT_CNID_AUTH_FAILED 24
#define EXIT_PEER_UNREACHABLE 25
#endif
所以苹果有一些自己的退出代码,你的被定义为EXIT_PEER_UNREACHABLE
.无需赘述,看起来此退出代码仅在插件失败时才使用(Helpers/pppd/main.c
第 638 行)。