Cara menjalankan skrip shell secara otomatis saat masuk ke Ubuntu


15

Bagaimana saya mendapatkan skrip untuk dieksekusi secara otomatis ketika saya masuk? Tidak ketika mesin dinyalakan, dan tidak untuk semua pengguna, tetapi hanya ketika saya (atau pengguna tertentu dengan skrip) login melalui GNOME UI.

Dari membaca di tempat lain saya pikir itu ada .bash_profiledi direktori home saya, tetapi bagi saya itu tidak berpengaruh. Ketika saya menjalankannya secara manual di jendela terminal dengan mengetiknya ~/.bash_profileberfungsi, tetapi itu tidak akan berjalan secara otomatis ketika saya masuk.

Saya menjalankan Ubuntu 11.04. Izin file pada .bash_profile saya adalah -rwx------. Tidak ada .bash_profile di direktori home saya sebelum saya membuatnya hari ini.

Saya ingat versi lama Linux memiliki .profilefile untuk setiap pengguna, tetapi itu tidak berhasil.

Bagaimana ini dilakukan? Apakah saya perlu mengonfigurasi sesuatu yang lain agar file .bash_profile berfungsi? Atau apakah skrip login per pengguna harus ada di file lain?


.bash_profile, .profile dan .bashrc (Yang sebenarnya digunakan oleh ubuntu) dimuat setiap kali Anda membuka terminal bash. Jadi sebenarnya saya tidak yakin mereka akan dimuat jika Anda baru saja masuk ke GDM.
Juan Sebastian Totero

Memposting versi Ubuntu Anda mungkin membantu. Di Ubuntu 10.10 .bashrc "berfungsi untuk saya (TM)."
Vlueboy

Maksud Anda saat Anda masuk ke GUI, atau ke shell?
Flimzy

bash memuatnya saat Anda memulai shell baru, jadi mereka hanya akan dimuat ketika Anda membuka jendela terminal atau masuk ke terminal virtual, bukan ketika Anda masuk ke Gnome (GDM).
shiftycow

Saya menggunakan Ubuntu 11.04, seperti yang saya sebutkan dalam pertanyaan awal.
Mike Rowave

Jawaban:


11

Anda bisa menambahkan perintah berikut ke System> Preferences> Startup Applications:

bash /full/path/to/your/script.sh

Itu harus melakukan trik;)


Anda tahu, saya pernah melakukan itu sebelumnya dan itu tidak berhasil ... kecuali saya tidak menulis "bash" sebelum path script! Saya akan coba dengan bash nanti. Karena penasaran, ketika Anda memasukkan sesuatu melalui GUI ke dalam Aplikasi Startup, di mana file itu terdaftar?
Mike Rowave

Program startup harus terdaftar di/etc/xdg/autostart
shiftycow

Menambahkan bash /home/myusername/scriptnameke "Aplikasi Startup" berfungsi! Terima kasih. Namun ini mungkin khusus untuk GNOME di Ubuntu, itu sebabnya saya bertanya-tanya tentang di mana entri dalam item menu "Aplikasi Startup" terdaftar, karena itu akan lebih mirip di versi Linux modern lainnya.
Mike Rowave

2
/etc/xdg/autostarttampaknya merupakan file sistem-lebar, tidak khusus untuk pengguna.
Mike Rowave

Untuk versi ubuntu yang lebih baru lihat askubuntu.com/questions/159887/…
TooTone

8

Jadi pada dasarnya, seperti yang disarankan nodiscc , buat peluncur desktop: ~ / .config / autostart / script.desktop dengan konten berikut:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Kemudian buat skrip autostart: ~ / bin / autostart dengan konten bash Anda:

#!/bin/bash
# Execute bash script below

Pastikan ~ / bin / autostart dapat dieksekusi


5

Anda dapat menambahkan baris di crontab -

crontab -e

Kemudian tambahkan baris ini ke file yang terbuka:

@reboot /path/to/your/cool/script

Ini akan menjalankan skrip saat reboot. Untuk lebih jelasnya lihatman crontab


Saya tidak tahu mengapa, tetapi saya tidak dapat menjalankan file .sh pada "memulai aplikasi", oleh karena itu cara paling mudah untuk melakukannya sekarang adalah cron
Albert Català


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.