рдпрд╣ рдЖрд▓реЗрдЦ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ InternetSharing рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореИрдХрдмреБрдХ рдХреЛ рд╕реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдпрд╛ рд▓реИрдкрдЯреЙрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрдЧрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ euthanize рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рдореИрдВ рдореИрдХрдмреБрдХ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдХрдорд░реЗ рдореЗрдВ 3 рдЬреА рдирд╣реАрдВ рд╣реИред рдЖрд░рдЬреЗ -45 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реИрдкрдЯреЙрдк рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдЗрдВрдЯрд░рдиреЗрдЯрд╢реЗрдпрд░рд┐рдВрдЧ (рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдИрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдХрд╛рдо рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЖрдИрдПрд╕ рд╕реЗрдЯ рдХрд┐рдпрд╛ рддреЛ рдореИрдВ рдлреЛрди рдкрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЬрдм рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд▓реИрдкрдЯреЙрдк рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реА рдмрд╛рд░ рдорд╣рддреНрд╡ рдирд╣реАрдВ рджрд┐рдпрд╛ред рджреВрд╕рд░реА рдмрд╛рд░ рдореИрдВрдиреЗ рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬрдм рд╡рд╣ рдЪрд╛рд▓реВ рд╣реБрдЖред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡рд╣ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рдмрд╛рдж рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд╕реЗ рд╕реНрд▓реАрдк рдореЛрдб рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЖрдИрдПрд╕ рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рдиреАрдВрдж рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред
рдЯреАрдо
pmset -g assertions
рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдИрдПрд╕ рджреЛрд╖реА рд╣реИ:
pid 70000: [0x000 ... 000] PreventSystemSleep рдирд╛рдо: "com.apple.InternetSharing"ред
рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рд▓реЛрдЧ рдХрд┐рд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЗрд╡рд▓ "рд╕реЗрд╡рд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛" рдЖрдпрд╛ред
рдореБрдЭреЗ рдЦреБрдж рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рдерд╛ред
рдХреНрдпрд╛ рдХрд░реЗрдВ?
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ IS рд╕реЗрд╡рд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ:
/System/Library/LaunchDaemons/com.apple.InternetSharing.plist
рд╕рдорд╛рдзрд╛рди рдпрд╣ рдирд┐рдХрд▓рд╛: рд╕реЛрддреЗ рд╕рдордп рдЬрд╛рдЧрдиреЗ рдкрд░ рдФрд░ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рд╕реЗрд╡рд╛ рдЪрд╛рд▓реВ рдХрд░рдирд╛, рдЕрд░реНрдерд╛рдд, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рд▓реЗрдХрд┐рди рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ "рдЬрд╛рдЧрдиреЗ рдкрд░ рдФрд░ рд╕реЛрддреЗ рд╕рдордп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ" рдФрд░ рдЙрд╕реА рд╕рдордп рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдирд┐рд░реНрдгрдп
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЕрд░реНрдерд╛рдд, рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рджреВрд╕рд░рд╛ - рдЬрд╛рдЧрдиреЗ рдФрд░ рд╕реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╢рдГ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬреЗрдЧрд╛, рдХреНрд░рдорд╢рдГ, рд╢реБрд░реВ рдФрд░ рд░реЛрдХ рджреЗрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╕реЗрд╡рд╛ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ рд╕реБрдиреЗрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10001 рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рд╕реНрдЯреЙрдк рдХрдорд╛рдВрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
рд╣рдо рдЖрдИрдПрд╕ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╢рдГ PHP (рдиреАрдЪреЗ рдкреВрд░реНрдг рдХреЛрдб) рдореЗрдВ рд╕реЗрд╡рд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреА рдЬрд╛рдПрдВрдЧреА:
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
shell_exec('launchctl load -F /System/Library/LaunchDaemons/com.apple.InternetSharing.plist');
рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП:
shell_exec('launchctl unload /System/Library/LaunchDaemons/com.apple.InternetSharing.plist');
рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдлрд╝реЛрд▓реНрдбрд░
/Library/LaunchDaemons/
рдореЗрдВ
com.username.InternetSharing.plist
рдлрд╝рд╛рдЗрд▓
com.username.InternetSharing.plist
ред
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдБ:
sudo launchctl load -F /Library/LaunchDaemons/com.username.InternetSharing.plist
рдиреАрдВрдж рдХреЗ рд▓рд┐рдП рдЬрд╛рдЧреГрддрд┐ рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
Scenario
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо AppleScripts рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдиреАрдЪреЗ рдкреВрд░реНрдг рдХреЛрдб) рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдпрд╛ рд╕реНрдЯреЙрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╣реЗрдВрдЧреЗред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
do shell script "/usr/bin/php /Users/username/CheckMac/client.php start"
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдВрдж рдХрд░реЛ
do shell script "/usr/bin/php /Users/username/CheckMac/client.php stop"
рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦреЗрдВ:
"~/Library/Scenario/Wake Scripts"
рдФрд░
"~/Library/Scenario/Sleep Scripts"
ред
рдкрд░рд┐рдгрд╛рдо
рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░, рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо "
Wake Scripts
" рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдИрдПрд╕ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВред
рд╕реНрд▓реАрдк рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рд╕рдорд╛рди рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ "
Sleep Scripts
" рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдФрд░ рд╕реНрдЯреЙрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рдеред
рдХреЛрдб
рджрдлреНрддрд░
/Users/username/CheckMac/listen.php com.username.InternetSharing.plist
/Library/LaunchDaemons/com.username.InternetSharing.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.username.InternetSharing</string> <key>ProgramArguments</key> <array> <string>/usr/bin/php</string> <string>/Users/username/CheckMac/listen.php</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
рдЧреНрд░рд╛рд╣рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо
/Users/username/CheckMac/client.php <?php $fp = fsockopen("127.0.0.1", 10001, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = @$argv[1]."\r\n"; fwrite($fp, $out); fgets($fp, 128); sleep(1);
IS рд╕реНтАНрдХреНрд░рд┐рдкреНтАНрдЯ рд╕реНтАНрдХреНрд░рд┐рдкреНтАНрдЯ (рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ - AppleScripts рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ)
~ / рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдкрд░рд┐рджреГрд╢реНрдп / рд╡реЗрдХ рд▓рд┐рдкрд┐рдпреЛрдВ / рд╡реЗрдХред рд╕реЗрдкреНрдЯdo shell script "/usr/bin/php /Users/username/CheckMac/client.php start"
рдУрд╕рдиреЛрд╡ рд▓рд┐рдкрд┐ рдЖрдИ.рдПрд╕.
~ / рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдкрд░рд┐рджреГрд╢реНрдп / рдиреАрдВрдж рд▓рд┐рдкрд┐рдпреЛрдВ / рд╕реНрд▓реАрдкред рдЧреБрдкреНрддdo shell script "/usr/bin/php /Users/username/CheckMac/client.php stop"