Apakah ada cara untuk menjalankan skrip ketika antarmuka jaringan muncul di Mac OS X?
Saya sudah mencoba meletakkan skrip bernama ip-up di / etc / ppp tetapi sepertinya tidak menyala ketika saya memutus dan menyambung kembali ke jaringan nirkabel.
Saya lebih suka tidak harus menjalankan pekerjaan cron untuk terus-menerus memeriksa apakah status jaringan telah berubah. Di beberapa distro linux, Anda dapat melakukannya dengan meletakkan skrip di /etc/network/if-up.d/. Apakah ada yang serupa untuk Mac OS X?
Agen launchd yang menonton
/etc/resolv.conf
, dan dua file .plist terkait jaringan di bawah/Library/Preferences/SystemConfiguration/
tampaknya berfungsi untuk saya (di Mac OS X 10.8.4):Sebelumnya saya hanya menggunakan /etc/resolv.conf, tetapi ada beberapa kasus di mana itu tidak cukup.
sumber
<plist version="1.0">
tag pembuka tidak ada. [1] [ apple.stackexchange.com/a/181127/56862]SystemConfiguration
file - file ini ? Jika saya pasang / cabut kabel jaringan, sepertinya tidak ada yang berubah sama sekali/etc/resolv.conf
file tersebut dihapus dan dibaca kembali ketika kondisi wifi saya berubah, jadi saya tidak yakin mengapa itu hanya berjalan pada putuskan.Anda harus mempertimbangkan untuk menggunakan crankd , yang memungkinkan Anda untuk menjalankan skrip sebagai respons terhadap banyak peristiwa sistem seperti perubahan jaringan, aktivitas sistem file, peluncuran aplikasi, dll.
Karena saya tidak dapat menemukan dokumentasi yang masuk akal, saya juga menulis posting blog kecil tentang cara mulai menggunakan crankd .
sumber
Ini tampaknya bekerja di bash:
ganti
echo change
dengan perintah Anda, ingatlah bahwa jika Anda perlu mengutip sesuatu dalam perintah Anda, Anda harus menggunakan'\''
:sumber
ControlPlane: "Konteks Sensitif Komputasi"
ControlPlane adalah port langsung dari MarcoPolo dan pada kenyataannya, banyak konfigurasi dari MarcoPolo masih bekerja dengan ControlPlane, hanya lebih baik! ControlPlane mendukung 32 dan 64bit Mac berbasis Intel yang menjalankan Snow Leopard dan lebih tinggi.
sumber
Mulai dengan launchd. Anda mungkin dapat menggunakan fungsionalitas serupa.
EDIT : 9 tahun kemudian, mungkin tidak. Menurut entri Wikipedia ini :
Pada tahun 2014, dengan OS X 10.10 dan iOS 8, Apple memindahkan kode untuk launchd ke libxpc sumber tertutup
sumber