Bagaimana cara menjalankan aplikasi saat startup sebagai pengguna tertentu?

17

Apakah ada cara untuk meluncurkan aplikasi selama startup di bawah akun pengguna tertentu?

Misalnya, saya ingin a_small_appmenjalankan di bawah akun pengguna bob(yang ada di grup bobsgroup). Apakah saya menambahkan sesuatu /etc/init.d?

Catatan: Saya tidak ingin aplikasi dijalankan setelah pengguna masuk tetapi saat komputer dimulai.

Nathan Osman
sumber
Apakah Anda ingin aplikasi dimulai sebelum masuk di jendela masuk?
Martin Owens -doctormo-
@ Martin: Yah, itu tidak masalah ... Saya menggunakan Apache sebagai contoh di sini. Kapan itu mulai?
Nathan Osman

Jawaban:

13

Metode agnostik sistem startup. Anda dapat menggunakan ini dalam /etc/rc.local, /etc/init.d/...skrip, file konfigurasi pemula dan mungkin juga konfigurasi sistemd.

sudo -u oli /full/path/to/application

Perintah ini akan berjalan sebagai pengguna root dan sudoakan turun ke pengguna "oli". Jelas mengubah pengguna dan perintah untuk tujuan Anda.

Saya harus menambahkan bahwa setidaknya ada selusin cara melakukan hal ini ... Tetapi dalam pengalaman saya, mereka semua pada dasarnya identik. Inilah contoh pemula menggunakan setuidbaitnya:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application
Oli
sumber
Saya menyarankan bahwa contoh
waltinator
Saya mendapatkansudo: unknown group: 1004
ThorSummoner
Juga, cari : Waktu untuk memperbarui baris tentang pemula.
muru
@uru aku akan. Tetapi kelompok tidak diperlukan. sudo akan menggunakan grup default pengguna yang ditentukan .
Oli
Lebih baik mengeditnya, kalau begitu. Perintah itu salah selama tiga tahun sejak seseorang memperbaikinya ! : D
muru
1

Tampaknya jawaban pertama tidak berfungsi di Ubuntu 14.10 lagi.

Ini adalah bagaimana saya melakukannya di sana (taruh di /etc/rc.local)

su <username> - -c "<command>"
vrodic
sumber
Jika Anda memerlukan shell login, padanannya adalah sudo -i -u ....
muru