Saya bertanya-tanya apakah ada yang bisa membantu saya mendapatkan file .sh untuk dijalankan ketika saya masuk ke akun saya di komputer saya. Saya menjalankan Mac OS X 10.6.7.
Saya memiliki file "Example.sh" yang ingin saya jalankan ketika saya masuk ke komputer saya. Saya tidak punya masalah menjalankannya ketika saya sudah masuk, tetapi saya ingin ini berjalan secara otomatis.
Orang-orang mengatakan untuk menambahkannya ke file shell login, tetapi saya tidak tahu di mana itu. Tolong bantu.
Jawaban:
Ikuti ini:
Automator.app
Application
Show library
di bilah alat (jika disembunyikan)Run shell script
(dariActions/Utilities
)simpan di suatu tempat (misalnya Anda dapat membuat
Applications
folder di HOME Anda, Anda akan mendapatkanyour_name.app
)pergi ke
System Preferences
->Accounts
->Login items
EDIT:
Baru-baru ini saya mendapatkan lencana "Jawaban yang bagus" untuk jawaban ini. Sementara solusi saya sederhana dan berfungsi, cara terbersih untuk menjalankan program atau skrip shell apa pun saat login dijelaskan dalam jawaban @ trisweb , kecuali, Anda menginginkan interaktivitas .
Dengan solusi automator Anda dapat melakukan hal-hal seperti berikut:
jadi, meminta untuk menjalankan skrip atau keluar dari aplikasi, meminta kata sandi, menjalankan alur kerja automator lain pada saat masuk, menjalankan aplikasi pada saat masuk dan seterusnya ...
sumber
tl; dr: gunakan peluncur dan pengelola proses asli OSX
launchd
,.Untuk melakukannya, buat
launchctl
daemon. Anda akan memiliki kontrol penuh atas semua aspek skrip. Anda dapat berlari sekali atau tetap hidup sebagai daemon. Dalam kebanyakan kasus, ini adalah jalan yang harus ditempuh..plist
file sesuai dengan petunjuk dalam dokumen Apple Dev di sini atau detail lainnya di bawah ini.~/Library/LaunchAgents
launchctl load [filename.plist]
)Untuk lebih lanjut tentang
launchd
, artikel wikipedia cukup bagus dan menggambarkan sistem dan kelebihannya dibandingkan sistem yang lebih tua lainnya.Inilah file plist khusus untuk menjalankan skrip saat masuk .
Ganti
<string>
setelah kunci Program dengan perintah yang Anda inginkan (perhatikan bahwa skrip yang dirujuk oleh perintah itu harus dapat dieksekusi:chmod a+x /path/to/executable/script.sh
untuk memastikan itu untuk semua pengguna).Simpan sebagai
~/Library/LaunchAgents/com.user.loginscript.plist
Jalankan
launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
dan keluar / masuk untuk menguji (atau untuk menguji langsung, jalankanlaunchctl start com.user.loginscript
)Ekor
/var/log/system.log
untuk pesan kesalahan.Kuncinya adalah bahwa ini adalah entri launchd khusus pengguna, sehingga akan dijalankan saat login untuk pengguna yang diberikan. Daemon peluncuran khusus sistem (ditempatkan di
/Library/LaunchDaemons
) dijalankan saat boot.Jika Anda ingin skrip dijalankan saat masuk untuk semua pengguna, saya percaya LoginHook adalah satu-satunya pilihan Anda, dan mungkin itulah alasannya.
sumber
launchctl
lebih baik dalam kebanyakan kasus, dan memberi Anda kontrol lebih besar atas semua aspek yang mungkin dari menjalankan skrip Anda. Ini lebih dalam arti "mengapa menggunakan metode yang kurang mampu ketika launchd ada?" (Catatan saya telah mengubah kalimat pertama untuk menunjukkan bahwa saya pribadi tidak merekomendasikan ini untuk situasi ini).Buat skrip shell Anda seperti
login.sh
di folder $ HOME Anda.Rekatkan skrip satu baris berikut ke dalam Script Editor:
lakukan skrip shell "$ HOME / login.sh"
Kemudian simpan sebagai aplikasi.
Akhirnya tambahkan aplikasi ke item login Anda.
Jika Anda ingin membuat output skrip visual, Anda dapat menukar langkah 2 untuk ini:
Jika beberapa perintah diperlukan, sesuatu seperti ini dapat digunakan:
sumber
Go to System Preferences -> Accounts -> Login items
dan centang kotak sembunyikan untuk aplikasi ini.~/Library/LaunchAgents
folder?