Ubuntu - Jalankan perintah saat start-up dengan "sudo"

91

Saya ingin menjalankan sudoperintah saat Ubuntu mulai (sebelum ada yang masuk):

sudo searchd

Bagaimana saya melakukan ini?

Mark Willis
sumber

Jawaban:

195

Anda dapat menambahkan perintah di /etc/rc.localskrip yang dijalankan di akhir startup.

Tuliskan perintah sebelumnya exit 0. Apa pun yang ditulis setelahnya exit 0tidak akan pernah dieksekusi.

Didier Trosset
sumber
38
Sebelumnya pasti. Apa pun yang ditulis setelahnya exit 0tidak akan pernah dieksekusi.
Didier Trosset
Hai Saya juga memiliki dan perintah rvmsudo untuk dieksekusi dalam situasi yang sama. perintah biasanya akan meminta kata sandi. Apakah akan ada masalah jika saya menempatkan perintah langsung di /etc/rc.local?
ravi1991
@fmonegaglia Itu tergantung. Jika Anda ingin perintah dimulai, dan skrip menunggu hingga selesai sebelum melanjutkan ke perintah berikutnya pada skrip, maka tidak &. Jika Anda ingin perintah berikut dimulai meskipun perintah saat ini belum selesai, tambahkan file &.
Didier Trosset
@NoOne Periksa hak akses pada file ini untuk pengguna saat ini. Memulai perintah editor dengan sudo dapat melakukan triknya.
Didier Trosset
1
Tentu saja itu ada dan ya, saya mengatur bit yang dapat dieksekusi. Saat mencoba mengaktifkan layanan, saya hanya mendapatkan The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […].saran tentang ini?
oarfish
9

Edit konfigurasi tty /etc/init/tty*.confdengan shellscript sebagai parameter:

(...)
exec /sbin/getty -n -l  theInputScript.sh -8 38400 tty1
(...)

Ini mengasumsikan bahwa kita mengedit tty1 dan skrip yang membaca input adalahInputScript.sh.

Sebuah kata peringatan skrip ini dijalankan sebagai root, jadi ketika Anda memasukkan sesuatu ke dalamnya, Anda memiliki hak akses root. Tambahkan juga jalur ke lokasi skrip.

Penting: skrip ketika selesai, harus memanggil / sbin / login jika tidak, Anda tidak akan bisa login di terminal.

Nugget
sumber
1
jawaban ini sangat berguna bagi saya ketika membangun peralatan produk kami, terima kasih banyak
José F. Romaniello
0

Jawaban yang bagus. Anda juga dapat mengatur Pekerjaan (yaitu, perintah) dengan " Crontab " untuk fleksibilitas lebih (yang menyediakan opsi berbeda untuk menjalankan skrip, mencatat keluaran, dll.), Meskipun memerlukan lebih banyak waktu untuk dipahami dan disetel dengan benar:

Menggunakan '@reboot' Anda dapat menjalankan perintah satu kali, saat startup.

Membungkus : lari$ sudo crontab -e -u root

Dan tambahkan baris di akhir file dengan perintah Anda sebagai berikut:

@reboot sudo searchd
Javi
sumber