GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Mengurangi Waktu yang Dibutuhkan Untuk Login Dengan Menunda/Menunda Beberapa Aplikasi Startup?

Saya telah menyiapkan beberapa aplikasi untuk memulai pada setiap login (mis., redshift-gtk, gtg) secara otomatis tetapi setelah menambahkan ini ke aplikasi startup (System -> Preferences -> Startup Applications ) jelas waktu yang dibutuhkan untuk login telah meningkat. Karena semua ini, waktu yang diperlukan untuk menampilkan panel, desktop, dll. terlalu lama – hingga saya terpaksa menunggu.

Saya tidak membutuhkan aplikasi ini untuk segera tersedia, tetapi akan lebih baik jika mereka akhirnya memulai, sementara menu/panel ubuntu tersedia untuk menjalankan aplikasi lain yang mungkin saya perlukan.

Saya mencoba menggunakan at command, dengan maksud mengedit semua aplikasi startup untuk memasukkan perintah ke dalam antrean at, tetapi ini tidak berhasil karena aplikasi tidak mendapatkan variabel lingkungan yang diperlukan (seperti DISPLAY).

Apakah ini yang nice perintah digunakan untuk? Adakah 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 yang Diterima:

Jumlah detik yang diperlukan untuk menunggu desktop Anda memuat adalah arbitrer dan dapat berubah tergantung pada situasinya. Alih-alih sleep , coba gunakan yang berikut ini untuk menjalankan aplikasi startup segera setelah beban sistem menurun:

(Sunting:Menambahkan saran koushik.)

#!/bin/bash
# 
# Delays running an application until the system load has declined.
# 
# Usage:
#   run-when-load-low 'your command here'

echo "export DISPLAY=$DISPLAY; $1 &" | batch

exit 0

Simpan sebagai ~/bin/run-when-load-low dan tambahkan run-when-load-low 'COMMAND' di Preferensi Aplikasi Startup.

Catatan tentang metode ini:

  • Skrip di atas adalah yang berhasil untuk saya. Ini hanya melewati DISPLAY variabel lingkungan ke aplikasi. Untuk sebagian besar aplikasi desktop hanya ini yang Anda butuhkan. Dengan itu, pastikan untuk mempertimbangkan kasus khusus apa pun dan ingatlah fakta ini saat memecahkan masalah apa pun yang tidak berfungsi dengan benar. Tempat yang baik untuk memulai jika menurut Anda suatu aplikasi mungkin memerlukan variabel lingkungan lain yang diteruskan adalah printenv dan dokumentasi aplikasi, meskipun saya pribadi belum mengalami masalah ini.
  • Pemahaman saya tentang nilai "memuat" sistem adalah bahwa hal itu memperhitungkan IO menunggu, jadi aplikasi yang tertunda tidak boleh dimulai terlalu cepat secara tidak sengaja selama jeda penggunaan CPU yang disebabkan oleh proses desktop yang menunggu di IO. Ini bukan area yang saya tahu banyak, jadi tolong perbaiki saya jika saya salah di sini.
  • batch hanya memengaruhi ketika aplikasi dijalankan; itu tidak mengubah prioritas/kebaikan mereka.
  • Ini tidak perlu dikatakan lagi, tetapi jika sistem Anda selalu memiliki beban tinggi, aplikasi yang dijadwalkan menggunakan metode ini mungkin tidak akan pernah berjalan.
  • Jika Anda perlu menjalankan aplikasi dengan parameter yang berisi spasi, Anda dapat menghindarinya menggunakan garis miring terbalik:run-when-load-low 'gedit My\ Notes.txt' . Jika Anda benar-benar perlu meneruskan parameter dengan tanda kutip tunggal ke 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, sebaiknya Anda hanya memodifikasi salinan skrip dengan perintah hard-coded.
Terkait:Tidak dapat menjalankan aplikasi GUI dari cron?
Ubuntu
  1. Bagaimana Cara Menambahkan Aplikasi Startup Di Lubuntu?

  2. Bagaimana Mengubah Urutan Pengguna Di Layar Login?

  3. Bagaimana Mengukur Waktu Login Desktop Dengan Bootchart?

  1. Cara Meningkatkan Waktu Startup Aplikasi Di Linux

  2. Bagaimana Melacak Waktu Dari Baris Perintah?

  3. Cara mengontrol waktu yang dihabiskan pengguna

  1. Cara Menonaktifkan Sesi Login Tamu Ubuntu 11.10

  2. Bagaimana Mengubah Bahasa Melalui Terminal?

  3. Bagaimana Mengembalikan Manajer Login Default Untuk Kde?