Saya telah mengatur beberapa aplikasi untuk memulai pada setiap login (misalnya, redshift-gtk, gtg) secara otomatis tetapi setelah menambahkannya ke aplikasi startup ( System -> Preferences -> Startup Applications
) jelas waktu yang dibutuhkan untuk login telah meningkat. Karena semua ini waktu yang dibutuhkan untuk panel saya, desktop dll untuk muncul terlalu lama - sampai saya dipaksa untuk menunggu.
Saya tidak memerlukan aplikasi ini untuk segera tersedia, tetapi akan lebih baik jika mereka mulai pada akhirnya, sementara itu menu / panel ubuntu tersedia untuk menjalankan aplikasi lain yang mungkin saya perlukan.
Saya mencoba menggunakan perintah, dengan maksud mengedit semua aplikasi startup untuk menempatkan perintah di antrian, tetapi ini tidak berhasil karena aplikasi tidak mendapatkan variabel lingkungan yang diperlukan (seperti DISPLAY).
Apakah ini nice
perintah yang digunakan? Ada ide lain bagaimana saya bisa mencapai ini? Jika memungkinkan, saya ingin menghindari pengeditan perintah aplikasi startup, karena ini berarti banyak upaya untuk mereplikasi pada mesin lain yang saya gunakan.
Jawaban:
Jumlah detik yang diperlukan untuk menunggu desktop Anda memuat adalah arbitrer dan dapat berubah tergantung situasinya. Alih-alih
sleep
, coba gunakan yang berikut ini untuk menjalankan aplikasi startup segera setelah beban sistem menurun:(Edit: Menambahkan saran koushik.)
Simpan sebagai
~/bin/run-when-load-low
dan tambahkanrun-when-load-low 'COMMAND'
di Preferensi Aplikasi Startup.Catatan tentang metode ini:
DISPLAY
variabel lingkungan ke aplikasi. Untuk sebagian besar aplikasi desktop, ini adalah semua yang Anda butuhkan. Dengan itu, pastikan untuk mempertimbangkan setiap kasus khusus dan ingat fakta ini saat memecahkan masalah apa pun yang tidak berperilaku benar. Tempat yang baik untuk memulai jika Anda berpikir aplikasi mungkin memerlukan variabel lingkungan lain yang lulusprintenv
dan dokumentasi aplikasi, meskipun saya pribadi belum mengalami masalah ini.batch
hanya mempengaruhi ketika aplikasi dijalankan; itu tidak mengubah prioritas / kebaikan mereka.run-when-load-low 'gedit My\ Notes.txt'
. Jika Anda benar-benar harus lulus parameter tunggal dikutip untuk aplikasi Anda, Anda harus menggunakan tanda kutip ganda dalam perintah startup:run-when-load-low "gedit 'My Notes.txt'"
. Untuk hal yang lebih rumit dari ini, Anda mungkin lebih baik hanya memodifikasi salinan skrip dengan perintah Anda yang dikodekan.sumber
batch
? Selain itu, mungkinkah cpu load berkurang sebelum desktop selesai memuat (katakanlah, menunggu disk untuk memuat beberapa ikon) dan aplikasi ini mulai menghasilkan situasi yang sama seperti sebelumnya? Dengan kata lain, apakah perintah dijalankan dengan batch yang secara inheren lebih rendah prioritasnya yang dihasilkan ketika aplikasi lain ingin dijalankan?batch
antrian masih berjalan, jadi saya membuat proses startup di latar juga. Baris yang dimodifikasi adalah sebagai berikut:echo "export DISPLAY=$DISPLAY; notify-send 'Running on Load low' '$1' && $1 &" | batch
Saya menemukan bahwa hanya menggunakan
sleep 10 && COMMAND
nama perintah tidak berhasil. Saya punya masalah dengan memuat conky dan xchat terlalu dini dan entah bagaimana rusak. Saya harus menulis sebuah skrip kecil yang disebut~/bin/startup
dan memasukkan ini ke dalamnya:Anda perlu mengubah izinnya agar dapat dieksekusi
chmod +x ~/bin/startup
dan kemudian hanya mengganti entri aplikasi start-up dengan perintahstartup
dan itu akan memadamkan semua yang ada di skrip.Anda dapat memiliki satu file untuk setiap aplikasi jika Anda cenderung seperti itu.
sumber
sleep
akan tidak menunda booting. Aplikasi start-up adalah non-pemblokiran yang artinya lebih dari satu hal dapat dimuat sekaligus.sleep
ing memungkinkan sisa gnome memuat dan kemudian memuat hal-hal yang kurang penting.Gunakan perintah 'tidur'.
Dalam Sistem -> Preferensi -> Aplikasi Startup, edit perintah untuk program yang ingin Anda tunda:
Ganti 10 dengan jumlah detik yang Anda inginkan untuk menunggu dan PERINTAH dengan apa yang ada di kotak perintah pada awalnya.
sumber
COMMAND &
(berjalan di latar belakang) akan berhasil.