Jalankan program secara otomatis pada startup di bawah linux ubuntu [ditutup]

140

Saya membutuhkan program untuk dijalankan setiap kali saya memulai linux ubuntu saya. Jadi saya perlu menambahkannya ke daftar program startup saya. Hanya satu masalah: Saya harus melakukannya melalui terminal.

Matteo Monti
sumber
23
@Flexo Jawaban ini tidak ada di tautan yang Anda berikan. Memberi +1 pada pertanyaan dan jawaban ini
Francisco Valdez
2
Sebenarnya, jawaban di sini dirujuk dari pertanyaan pertama.
Wilson F
4
Untuk cara mudah dan portabel untuk melakukan ini, Anda dapat menggunakan Cron. Jalankan crontab -euntuk mengedit crontab pengguna Anda; tambahkan @reboot commanduntuk dijalankan commandpada setiap boot.
appas
2
Saya tidak tahu apakah ini duplikat atau tidak tetapi ini adalah hit google pertama ..
Vladimir verleg

Jawaban:

178
sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename 
sudo update-rc.d filename defaults 

Sekarang skrip harus mulai saat boot. Perhatikan bahwa metode ini juga berfungsi baik dengan tautan keras maupun tautan simbolik ( ln).

Edit

Pada titik ini dalam proses boot PATH belum ditetapkan, jadi sangat penting bahwa path absolut digunakan di seluruh. TETAPI, sebagaimana ditunjukkan dalam komentar oleh Steve HHH, secara eksplisit menyatakan path file lengkap ( /etc/init.d/filename) untuk perintah update-rc.d tidak valid di sebagian besar versi Linux. Per halaman manual untuk pembaruan-rc.d , parameter kedua adalah skrip yang terletak di /etc/init.d/*. Kode di atas diperbarui untuk mencerminkan ini.

Edit lainnya

Juga seperti yang ditunjukkan dalam komentar (oleh Charles Brandt), /filenameharus skrip gaya init. Template yang baik juga disediakan - https://github.com/fhd/init-script-template .

Tautan lain ke artikel lain hanya untuk menghindari kemungkinan pembusukan tautan (meskipun akan menyedihkan jika GitHub meninggal) - http://www.linux.com/learn/tutorials/442412-mengelola-linux-daemons-with-init-scripts

yetAnother Edit

Seperti yang ditunjukkan dalam komentar (oleh Russell Yan), Ini hanya berfungsi pada mode default pembaruan-rc.d.

Menurut manual update-rc.d, ia dapat berjalan pada dua mode, "mesin yang menggunakan mode lama akan memiliki file /etc/init.d/.legacy-bootordering", dalam hal ini Anda harus melewati urutan dan konfigurasi runlevel melalui argumen baris perintah.

Argumen setara yang ditetapkan untuk contoh di atas adalah

sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .

Dave Lasley
sumber
1
Sama seperti FYI, opsi "default" menempatkan tautan untuk memulai skrip dalam menjalankan level 2, 3, 4 dan 5. (dan meletakkan tautan untuk berhenti di 0, 1 dan 6.)
Dave Lasley
5
Saya baru saja mencoba ini di Ubuntu Server 12,04 LTS, tetapi dalam 12,04 Anda tidak dapat memiliki awalan /etc/init.d. Hanya saja sudo update-rc.d filename defaults.
Steve HHH
1
@puk Baik tautan keras maupun tautan simbolik akan berfungsi dengan metode ini
Dave Lasley
14
Hanya ingin menambahkan bahwa / nama file dalam hal ini harus menjadi skrip gaya init. Berikut ini adalah template untuk memulai skrip init kustom Anda sendiri: github.com/fhd/init-script-template
Charles Brandt
1
Membaca ini - unix.stackexchange.com/questions/28679/… - bersama dengan jawabannya akan sangat membantu
Arjun Sreedharan