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?

Mike Rowave
sumber
.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;)

Juan Sebastian Totero
sumber
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

Bert Regelink
sumber
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

inLoveWithPython
sumber
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à
1

Coba ~/.xinitrc(beberapa info di sini: https://wiki.archlinux.org/index.php/Xinitrc ). Ingatlah bahwa apa pun yang Anda mulai dalam skrip ini harus dimulai / dijalankan di latar belakang, atau dapat mengganggu login X.

Slartibartfast
sumber
-1

Memperluas jawaban @JuanSebastianTotero .

Dari pada:

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

Mencoba

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

bashtidak bekerja untuk saya di Ubuntu 13.04dan 14.04. Namun shdemikian.

Rahil Wazir
sumber