Bagaimana menjalankan rc.local sebagai pengguna normal?

8

Saya mempunyai beberapa pujian yang ingin saya panggil segera setelah login, termasuk 'startx', dan saya pikir rc.localsepertinya tempat yang bagus untuk mereka, tetapi masalahnya rc.localadalah dijalankan sebagai root dan saya tidak menginginkannya, jelas saya bisa melakukannya sesuatu seperti ini:

su username -c somecommend-here

Tetapi saya mencari cara untuk menjalankan keseluruhan 'rc.local' sebagai pengguna normal, atau mungkin ada tempat yang lebih baik untuk meletakkan kode saya?

PS. Saya menggunakan Ubuntu-mini-remix 1104i386

Terima kasih

omeid
sumber
AFAIK rc.local dijalankan secara paralel untuk masuk pada akhir urutan booting. Maksud saya, itu akan dieksekusi bahkan jika Anda tidak masuk, tetapi Anda bisa masuk semut itu bisa jadi eksekusi yang tertunda.
Javier Rivera
@JavierRivera Jadi apa solusinya?
omeid

Jawaban:

6

Cara termudah untuk meluncurkan perintah ketika pengguna log in adalah membuat .desktopfile untuk perintah dan menempelkannya di ~/.config/autostartfolder. Seperti apa tampilan file desktop? Berikut adalah contoh yang mengambil halaman beranda Ask Ubuntu wgetsetiap kali pengguna login:

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/
Nathan Osman
sumber
Tampaknya bukan ide yang baik untuk diluncurkan startx(seperti yang diminta OP) setelah login grafis.
enzotib
@enzotib: Tidak disebutkan login grafis.
Nathan Osman
Mungkin saya salah paham pertanyaannya, saya percaya pengguna akan mulai startxdari rc.local. Maaf
enzotib
1

Saya tidak tahu perbedaan antara /etc/rc.local dan crontab, tapi saya biasanya membuat akun layanan dan menambahkan pekerjaan yang sesuai. Sebagai contoh: sudo crontab -u p4padmin -e

@reboot ~/bin/p4p -d -r ~/var/p4p/cache/foo -p 2020 -t depot:2020 -L ~/var/p4p/log/foo.log

Anda tidak harus masuk agar layanan dapat dieksekusi.

Stephen Niedzielski
sumber
0

Cara linux adalah menambahkan perintah Anda, ~/.bashrcbukan /etc/rc.local.

Setiap pengguna memiliki .bashrcdirektori home di dalamnya. File skrip ini dijalankan secara otomatis hanya setelah pengguna login. Ini dijalankan dengan kredensial pengguna sehingga superintah tidak diperlukan.

Menurut saya, inilah yang sebenarnya Anda cari.

mereka
sumber
Ini tidak sepenuhnya benar, seperti .bashrcyang tidak dibaca ketika pengguna masuk menggunakan normal lightdm, misalnya.
Saya menyimpulkan terlalu cepat bahwa pengguna menggunakan login commandline alih-alih display manager karena perintah startx "manual" yang ia sebutkan .... my bad :-)
thom