Apakah mungkin untuk mengkonfigurasi Berbagi Internet agar komputer dapat tidur?

9

TL; DR: Berbagi Internet mencegah Mac saya tidur. Saya perlu secara manual tidur sistem secara teratur. Saya ingin cara mengonfigurasi Berbagi Internet untuk berhenti mencegah tidur.

Saya memiliki iMac di rumah di kamar saya terlalu jauh dari router saya, dan saya tidak dapat menggunakan nirkabel, juga, cakupan 3G di sini sangat buruk, jadi saya telah mengaktifkan Internet Sharing sehingga saya dapat menggunakan iPhone / iPad saya terhubung melalui saya iMac.

Di tempat kerja saya berada di jaringan perusahaan dan nirkabel agak timpang dan terlalu membatasi, jadi saya telah mengaktifkan Berbagi Internet di MacBook Pro saya di sana juga, sehingga iPhone saya dapat menjangkau hal-hal internal.

Masalahnya adalah: Ketika saya menekan + + (atau > Sleep) komputer tidak tidur sesuai keinginan; kecuali saya menonaktifkan Berbagi Internet terlebih dahulu.

Di rumah saya ingin komputer tidur ketika saya tidur (menghemat daya + lebih banyak kesunyian) dan di tempat kerja ketika pulang saya ingin komputer juga tidur, jadi saya tidak perlu menutup semua aplikasi yang terhubung (Adium, Colloquy, dll) dan buka kembali lagi keesokan harinya.

Bagaimana saya bisa mengkonfigurasi pmsetatau Berbagi Internet sehingga saya bisa tidur komputer saya tanpa mengalami masalah ini?

Catatan: Saya sudah terbiasa pmsetmemeriksa apakah ada alasan lain dan kesalahan pidselalu terjadi com.apple.InternetSharing.

Sunting: Saya menyadari bahwa komputer tidur akan membuat tidak mungkin untuk menggunakan Berbagi Internet. Saya ingin tidur sepenuhnya dan saya ingin Berbagi Internet untuk hidup kembali hanya ketika komputer bangun.

Irae Carvalho
sumber
Output saya untuk perintah di atas adalah DenySystemSleep. Meskipun saya menemukan string, saya tidak dapat menggunakan sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.natuntuk mengubah perilaku. Bisakah Anda memperluas jawaban Anda sedikit?
Irae Carvalho
Jadi, misalnya, Anda menginginkan sesuatu yang akan mematikan berbagi, lalu tidur. Dan hal lain yang akan, secara otomatis saat bangun, mengaktifkan berbagi.
GEdgar
Persis! Inilah yang saya butuhkan
Irae Carvalho

Jawaban:

8

Saya telah bereksperimen dengan menggunakan ControlPlane untuk mencapai apa yang Anda inginkan. Hasil awal saya adalah itu akan melakukan apa yang Anda inginkan.

ControlPlane mendeteksi perubahan pada sistem Anda yang disebut 'sumber bukti'. Perubahan dievaluasi dengan 'aturan' yang mendefinisikan perubahan dalam 'konteks'. Terkait dengan setiap konteks adalah 'tindakan'.

Salah satu 'sumber bukti' adalah acara tidur / bangun. Jadi saya telah mengonfigurasi aturan sehingga pada acara tidur (mis. Anda telah mengeklik sleep di menu Apple), konteks 'Sleepy Time' dipicu. Dan untuk konteks ini saya telah menggunakan aksi 'ToggleInternetSharing' untuk mematikan.

Setelah mengklik pada Sleep, saya mendapatkan peringatan yang mengatakan bahwa Berbagi Internet sedang dimatikan dan setelah beberapa saat (sepertinya selamanya tapi mungkin hanya 10 atau 20 detik) Mac pergi tidur.

Dan saya memiliki aturan kedua sehingga pada acara bangun konteks 'Bangun' dipicu dan ini memiliki tindakan untuk mengaktifkan 'ToggleInternetSharing'.

Aturan dan Tindakan Saya:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Cobalah!

Ini hanya menggaruk permukaan yang bisa dilakukan ControlPlane.

Gilby
sumber
Aplikasi luar biasa! Itu bekerja seperti pesona! Terima kasih banyak atas penjelasan terperincinya. Saya juga memeriksa apakah aplikasi tersebut sepenuhnya gratis dan open source. Bagi saya ini dianggap sebagai nilai tambah untuk menggunakannya =)
Irae Carvalho
Saya sudah tahu tentang ControlPlane selama beberapa waktu, tetapi tidak menggunakannya. Pertanyaan Anda adalah alasan yang sangat baik untuk mengeksplorasi kemampuannya - terima kasih untuk itu.
Gilby
+1 di sini ... Dengan OS X Mavericks v10.9.4dan masih berfungsi seperti pesona. Terima kasih
gmo
Sepertinya aplikasi hebat! Sayangnya, beralih Berbagi Internet tidak berfungsi di El Capitan untuk saat ini (mungkin juga tidak di Sierra).
Winterflags
2

Jika Anda menjalankan Lion, InternetSharingsecara terkunci mengunci SystemSleep. Lihatlah:

strings /usr/libexec/InternetSharing | grep SystemSleep

Output dari perintah ini: DenySystemSleep adalah bukti yang InternetSharingsengaja memblokir kemungkinan kernel untuk tidur. Ada penjelasan sederhana untuk perlindungan ini: begitu InternetSharingdipecat, klien Mac ini mungkin menggunakannya sebagai router untuk mengakses Internet. Banyak hal yang dapat berjalan secara otomatis di atas koneksi internet ini tanpa sepengetahuan orang di depan layar.

Koneksi ini hanya boleh diputus oleh admin sistem yang memulai dan bukan perilaku sistem otomatis.

Ini adalah perilaku yang aman.

Oleh karena itu metode yang benar untuk memastikan InternetSharingdimatikan ketika Mac tidur adalah untuk menjadwalkan 4 acara dalam urutan berikut:

InternetSharing off
    system sleep
    system wakeup
InternetSharing on

Ini adalah penjadwalan yang ditawarkan oleh ControlPlane.

dan
sumber
Output saya untuk perintah di atas adalah DenySystemSleep. Meskipun saya menemukan string, saya tidak dapat menggunakan sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.natuntuk mengubah perilaku. Bisakah Anda memperluas jawaban Anda sedikit?
Irae Carvalho
1
Saya percaya @ daniel-azuelos berarti menunjukkan bahwa InternetSharing bertanggung jawab. Perintah yang disarankannya mencari melalui biner InternetSharing dan menemukan string yang terkait dengan memblokir tidur. Ini membantu mengkonfirmasi apa yang mungkin bertanggung jawab untuk menghalangi tidur, tetapi tidak untuk mendapatkan perilaku yang Anda inginkan.
Graham Miln
1

Tidak praktis untuk memiliki Mac dengan Berbagi Internet yang diaktifkan untuk dapat tidur.

Fitur Berbagi Internet adalah versi perangkat lunak dari router: Ini bertindak sebagai gateway ke internet, server DHCP, firewall, dan pengirim DNS. Fungsinya sama seperti router yang dapat Anda beli dari pengecer lokal Anda; dan gratis.

Namun, ada kerugian besar: Jika Mac yang bertindak sebagai gateway dimatikan atau tertidur, maka mesin lain tidak bisa online.

Inilah mengapa Internet Sharing mencegah mesin Anda tidur.

Tapi saya bisa berbagi file / iTunes / Layar Saat Tidur

Ya, Anda dapat membagikan semua hal itu, dan banyak lagi. Namun, ketika Anda pergi untuk mengakses file-file itu Mac Anda bangun . Ini disebut Wake On Demand dan Bonjour Sleep Proxy .

Ketika Mac Anda tertidur, itu membuat koneksi jaringan agak "hidup;" sedang mendengarkan "paket" Bonjour untuk membangunkan komputer. Ini ditangani oleh perangkat Airport (adapter jaringan) itu sendiri; bukan komputer. Ketika menerima "paket bangun" Mac bangun dan Anda dapat mulai berbagi sumber daya.

Bonjour 1 adalah layanan penemuan konfigurasi nol yang menggunakan multicast Domain Name Services (mDNS) yang merupakan protokol UDP 2 (disiarkan dan tidak dapat dialihkan) yang merupakan transportasi berorientasi pesan yang kecil, tanpa kewarganegaraan, dan minim pesan.

Pada dasarnya, UDP (berdasarkan apa Bonjour) sempurna untuk mengirim pesan ke komputer Anda untuk mengatakan "Bangun!"

Untuk menjelajah Internt (menggunakan komputer di belakang gateway Mac), Anda memerlukan tumpukan protokol lengkap yang didasarkan pada TCP . Ini akan membutuhkan DHCP, NAT, firewall, dll. Yang berarti harus memutar semua layanan tersebut sebelum mengizinkan klien untuk menjelajahi web. Ini akan menimbulkan banyak latensi.

Dan kembali ke pendekatan yang lebih pragmatis, jika Mac Anda pergi tidur dan bertindak sebagai gateway, itu tidak akan pernah pergi tidur atau akan naik turun seperti seseorang dengan kasus insomnia yang buruk.


1 Bonjour adalah implementasi jaringan nol-konfigurasi Apple (zeroconf), sekelompok teknologi yang mencakup penemuan layanan, penetapan alamat, dan resolusi nama host. Bonjour menempatkan perangkat seperti printer, komputer lain, dan layanan yang ditawarkan perangkat itu di jaringan lokal menggunakan catatan layanan Sistem Nama Domain (mDNS) multicast.

2 UDP adalah protokol transport layer yang berorientasi pada pesan minimal. UDP tidak memberikan jaminan kepada protokol lapisan atas untuk pengiriman pesan dan lapisan UDP tidak mempertahankan status pesan UDP setelah dikirim. Ini sederhana, cocok untuk bootstrap atau tujuan lain tanpa tumpukan protokol lengkap, seperti DHCP dan Trivial File Transfer Protocol.

Allan
sumber
Allan, terima kasih atas wawasan Anda. Dalam kasus khusus saya, saya hanya menggunakan Internet Sharing karena MBP yang saya hubungkan ke iMac saya melalui Thunderbolt Bridge untuk mendapatkan keuntungan dari Ethernet (100 Mbit bukannya ~ 30 Mbit Wifi). Saya tidak menggunakan Internet Sharing sebagai 'router'. Oleh karena itu akan praktis bagi saya untuk menemukan cara melalui skrip atau otomatisasi untuk mengaktifkan / menonaktifkan Berbagi Internet (atau memaksa tidur).
Winterflags
Internet Sharing adalah mengubah Mac Anda menjadi router - itulah fungsi inti dari apa yang berbagi internet tidak.
Allan
Saya mengerti, tapi saya tidak membicarakannya secara teknis. Saya menggunakan Internet Sharing hanya ketika menghubungkan MBP melalui Thunderbolt Bridge ke iMac, dan oleh karena itu tidak masuk akal untuk memiliki iMac tidak pernah tidur terlepas apakah itu terhubung atau tidak. Karenanya cari solusinya, mungkin melibatkan scripting.
Winterflags
1
Nah, Anda tidak akan mengesampingkan Berbagi Internet agar MBP Anda tidak dapat tidur, tetapi jika Anda menginginkan "solusi" lihat di sini: apple.stackexchange.com/questions/2488/…
Allan
Terima kasih - Saya sudah mencoba jawaban itu dan belum bisa membuatnya bekerja dengan El Capitan (mungkin karena SIP), tetapi harus menyelidiki lebih lanjut.
Winterflags
1

Kembali. ControlPlane, ini bekerja untuk saya ...

Dua Konteks (keduanya identik) Aturan Tiga Tindakan

CharlesB
sumber
0

Ketika unit manajemen daya komputer Anda membuat perangkat tidur, ia memasuki mode daya rendah. Kode rata-rata Anda yang dapat dieksekusi di komputer tidak berjalan dengan cara normal: komputer mempertahankan daya yang cukup untuk menyegarkan memori (jika perlu) dan sedikit lainnya. Anda tidak akan bisa terlibat dalam komputasi tujuan umum saat komputer tidur.

Namun, ada alternatif bagus yang harus Anda perhatikan. Alih-alih tidur seluruh unit, periksa tampilan tidur di System Preferences -> Energy Saver. Dalam kasus penggunaan saya, saya memiliki pengaturan sudut panas (yang dapat Anda aktifkan System Preferences -> Desktop & Screen Saver -> Screen Saver) sehingga ketika saya akan makan siang dan perlu mengunci layar saya dan / atau hanya meletakkan layar untuk tidur, saya pindah ke bawah -sudut kiri. Bekerja dengan baik untuk saya, komputer tidak muncul kembali dari rutinitas tidur dan proses lama yang saya lupakan tidak terganggu. Dalam kasus Anda, ini berarti hotspot WiFi Anda tidak akan jatuh.

zwerdlds
sumber
1
Ini memang sangat berguna, saya menggunakan <kbd> ^ </kbd> + <kbd> ⇧ </kbd> + <kbd> ⏏ </kbd> untuk melakukan itu. Tapi bukan itu yang saya inginkan. Saya tidak perlu Berbagi Internet saat komputer tidur. Saya membutuhkan komputer untuk benar-benar tidur dan bahkan mematikan berbagi dan wifi. Akan mengedit pertanyaan saya untuk menjelaskan. Terima kasih =)
Irae Carvalho
0

Anda dapat menggunakan Power Manager untuk mematikan Mac setelah periode tidak aktif. Power Manager dapat menolak proses dan aplikasi yang memblokir waktu tidur, termasuk Berbagi melalui Internet.

Panduan pengguna membahas cara mengaturnya:

Ketidakaktifan Yang Lebih Baik Memicu Tidur

Power Manager menawarkan alternatif. Kami menyediakan tidur yang dipicu tidak aktif. Tidak aktif diukur secara berbeda dari waktu idle; tidak aktif adalah pengukuran sederhana yang ditentukan semata-mata oleh aktivitas pengguna.

Atau, resep berikut ini menunjukkan cara membuat acara Power Manager untuk membuat Mac Anda tertidur setelah beberapa saat tidak aktif .

Power Manager: Matikan setelah tugas tidak aktif

Penafian: Saya bekerja untuk perusahaan yang mengembangkan Power Manager.

Graham Miln
sumber
Tidak berfungsi untuk saya dengan Berbagi Internet aktif. -1 untuk membuang satu jam hidupku.
Winterflags
Apa yang ingin Anda capai dan apa yang tidak berhasil untuk Anda?
Graham Miln
Sama seperti OP dan jawaban Anda. Saya mengonfigurasi Tidur Tanpa Aktivitas, dengan harapan itu akan 'Memaksa Tidur' dengan Berbagi Internet diaktifkan di System Preferences> Sharing . Itu tidak, tapi itu akan mengaktifkan sleep jika Internet Sharing dinonaktifkan.
Winterflags
1
Power Manager mengeluarkan permintaan tidur ke macOS. Jika Anda mengalami masalah dengan tidur, seperti yang ditunjukkan oleh pertanyaan lain, maka masalah tidur yang sama juga akan memengaruhi permintaan tidur yang dikeluarkan oleh aplikasi pihak ketiga. Tentu saja, saya mungkin salah atau sederhana salah dalam memahami situasi Anda. Saya harap Anda dapat menemukan solusinya.
Graham Miln
1
macOS akan selalu tidur ketika secara eksplisit diminta untuk tidur - Finder> Apple (menu)> Sleep . Tidak tidur adalah perilaku yang menunjukkan masalah dengan Mac.
Graham Miln