Pada instance Amazon S3 Linux, saya memiliki dua skrip yang dipanggil start_my_app
dan stop_my_app
yang memulai dan berhenti selamanya (yang pada gilirannya menjalankan aplikasi Node.js saya). Saya menggunakan skrip ini untuk memulai dan menghentikan aplikasi Node.js secara manual. Sejauh ini bagus.
Masalah saya: Saya juga ingin mengaturnya agar start_my_app
dijalankan setiap kali sistem dinyalakan. Saya tahu bahwa saya perlu menambahkan file di dalamnya init.d
dan saya tahu cara menyinkronkannya ke direktori yang benar di dalamnya rc.d
, tetapi saya tidak tahu apa yang sebenarnya perlu masuk ke dalam file yang saya tempatkan init.d
. Saya pikir itu seharusnya hanya satu baris, seperti start_my_app
, tetapi itu tidak berhasil untuk saya.
init.d
solusinya (di sini ) harus lebih disukai daripadarc.local
solusi karena yang terakhir adalah perkakas lama yang hanya masih dapat digunakan karena perkakas baru itu kompatibel ke belakang.Jawaban:
Dalam file yang Anda masukkan
/etc/init.d/
Anda harus mengaturnya dapat dieksekusi dengan:Terima kasih kepada @meetamit, jika ini tidak berjalan, Anda harus membuat symlink
/etc/rc.d/
Harap perhatikan bahwa pada Debian terbaru, ini tidak akan berfungsi karena skrip Anda harus sesuai dengan LSB (sediakan, setidaknya, tindakan berikut: mulai, berhenti, mulai ulang, muat ulang paksa, dan status): https: //wiki.debian .org / LSBInitScripts
Sebagai catatan, Anda harus meletakkan path absolut skrip Anda alih-alih relatif, skrip ini dapat memecahkan masalah yang tidak terduga:
Dan jangan lupa untuk menambahkan di atas file itu:
sumber
ln
perintah) ke direktori di dalamrc.d
/etc/rc.d
folder, tapi saya punya/etc/rcX.d
folder (Yaitu /etc/rc0.d , /etc/rc1.d , /etc/rcS.d ), juga ada file /etc/rc.local . Saya pikir Anda harus membuat symlink di folder khusus seperti/etc/rc9.d
atau di salah satu yang ada ... (Ubuntu Server 14.04)Tetapkan crontab untuk ini
setelah setiap startup akan menjalankan skrip uji.
sumber
@reboot sh $HOME/test.sh
di crontab bahkan lebih bersihcrontab -l
harus menunjukkan@reboot sh $HOME/test.sh
untuk mengonfirmasi bahwa itu sebenarnya telah disetel.Pendekatan sederhana adalah menambahkan baris di
/etc/rc.local
:atau jika Anda ingin menjalankan perintah sebagai pengguna khusus:
(trailing ampersand latar belakang proses dan memungkinkan rc.local untuk melanjutkan mengeksekusi)
Jika Anda ingin skrip init lengkap, distro debian memiliki file templat, jadi:
dan sedikit beradaptasi.
sumber
stop_my_app
) saya harus melakukannya dengansudo
, bukan? Juga, saya bertanya-tanya apa sebenarnya fungsi dari trailing ampersand (?).&
jalankan proses di latar belakanginit.d
cara melakukan sesuatu (jawaban Anda hanya solusi yang lebih sederhana bagi saya pada saat itu) . Posting ini mendapat banyak pandangan dan suara, jadi penting untuk tetap akurat.Ini adalah cara saya melakukannya di Red Hat Linux sistem .
Masukkan skrip Anda
/etc/init.d
, yang dimiliki oleh root dan dapat dieksekusi. Di bagian atas skrip, Anda dapat memberikan arahan untukchkconfig
. Contoh, skrip berikut digunakan untuk memulai aplikasi Java sebagai oracle pengguna.Nama skripnya adalah
/etc/init.d/apex
Ini mengatakan bahwa skrip harus dijalankan pada level 3, 4, dan 5, dan prioritas untuk start / stop adalah 99 dan 10.
Kemudian, sebagai pengguna
root
yang dapat Anda gunakanchkconfig
untuk mengaktifkan atau menonaktifkan skrip saat startup:Dan Anda bisa menggunakannya
service start/stop apex
.sumber
Masukkan
cron
menggunakansudo
:sudo crontab -e
Tambahkan perintah untuk dijalankan saat start up, dalam hal ini skrip:
@reboot sh /home/user/test.sh
Menyimpan:
Tekan ESC lalu: x untuk menyimpan dan keluar, atau tekan ESC lalu ZZ (itu bergeser + zz)
Tes Tes Uji :
Jalankan skrip pengujian Anda tanpa cron untuk memastikan itu benar-benar berfungsi.
Pastikan Anda menyimpan perintah Anda di cron, gunakan
sudo crontab -e
Boot ulang server untuk mengonfirmasi semuanya berfungsi
sudo @reboot
sumber
sudo
jika Anda ingin menjalankan perintah tertentu selama start-up dengan menggunakan pengguna saat ini./tmp
??Cukup tambahkan garis ke crontab Anda ..
Pastikan file tersebut dapat dieksekusi:
Untuk mengedit file crontab:
Baris yang harus Anda tambahkan:
Sesederhana itu!
sumber
# uname -a Linux accton-xp70a0-26-a1 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Opsi lain adalah memiliki perintah @reboot di crontab Anda.
Tidak semua versi cron mendukung ini, tetapi jika instance Anda didasarkan pada Amazon Linux AMI, maka itu akan berfungsi.
sumber
Kamu bisa melakukannya :
kemudian gunakan perintah ini
Silakan lihat halaman ini di Cyberciti .
sumber
Buat executable Anda sendiri / init
Ini bukan yang Anda inginkan, tetapi menyenangkan!
Pilih saja file yang dapat dieksekusi sewenang-wenang, bahkan skrip shell , dan boot kernel dengan parameter baris perintah:
Menjelang akhir boot, kernel Linux menjalankan executable userspace pertama di jalur yang diberikan.
Beberapa proyek menyediakan populer
init
executable digunakan oleh distro besar, misalnya systemd, dan di sebagian besar distro init akan melakukan banyak proses yang digunakan dalam operasi sistem normal.Tapi kita bisa membajak
/init
untuk menjalankan skrip minimal kita sendiri untuk lebih memahami sistem kita.Berikut ini adalah pengaturan minimal yang dapat direproduksi: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/f96d4d55c9caa7c0862991025e1291c48c33e3d9/README.md#custom-init
sumber
Solusi sederhana ini bekerja untuk saya di instance Amazon Linux yang menjalankan CentOS. Edit
/etc/rc.d/rc.local
file Anda dan letakkan perintah di sana. Disebutkan dalam file ini bahwa itu akan dieksekusi setelah semua skrip init lainnya. Jadi berhati-hatilah dalam hal ini. Beginilah tampilan file untuk saya saat ini. . Baris terakhir adalah nama skrip saya.sumber
Metode termudah mutlak jika semua yang ingin Anda jalankan adalah skrip sederhana, (atau apa pun) adalah jika Anda memiliki gui untuk menggunakan preferensi> sistem kemudian memulai aplikasi.
Cukup telusuri skrip yang Anda inginkan dan mulai lagi. (buat skrip dapat dieksekusi)
sumber
Untuk Debian 9 lihat /ubuntu/228304/how-do-i-run-a-script-at-start-up . Ini membantu saya. Versi singkat untuk Debian 9: tambahkan perintah (sebagai root) ke /etc/rc.local
Mungkin, /path_to_file/filename.sh harus dapat dieksekusi (saya pikir begitu).
sumber
Di Lubuntu saya harus menghadapi situasi yang berlawanan. Skype mulai berjalan setelah booting dan saya temukan di
~/.config/autostart/
fileskypeforlinux.desktop
. Isi file adalah sebagai berikut:Menghapus file ini membantu saya.
sumber
$ update-rc.d myScript.sh defaults NN
mana NN adalah urutan yang harus dijalankan. 99 misalnya akan berarti akan dijalankan setelah 98 dan sebelum 100.sumber
Bekerja dengan Python 3 microservices atau shell; menggunakan Ubuntu Server 18.04 (Bionic Beaver) atau Ubuntu 19.10 (Eoan Ermine) atau Ubuntu 18.10 (Cosmic Cuttlefish) Saya selalu suka langkah-langkah ini, dan selalu berhasil juga:
Membuat microservice disebut p contoh "brain_microservice1.service" dalam kasus saya:
Di dalam layanan baru ini Anda berada:
Berikan izin:
Maka berikan izin eksekusi:
Aktifkan kemudian, ini akan membuatnya selalu mulai saat startup
Maka Anda bisa mengujinya;
$ sudo reboot sekarang
Finish = SUKSES !!
Ini dapat dilakukan dengan skrip tubuh yang sama untuk menjalankan shell, bereaksi ... skrip startup basis data ... segala jenis kode os ... harap ini membantu Anda ...
...
sumber
Saya merujuk ke blog ini, selalu terdengar pilihan yang bagus
https://blog.xyzio.com/2016/06/14/setting-up-a-golang-website-to-autorun-on-ubuntu-using-systemd/
vim /lib/systemd/system/gosite.service
sumber
Inilah metode yang lebih sederhana!
Pertama: tulis skrip shell dan simpan .sh di sini adalah contohnya
skrip ini akan menonaktifkan keyboard internal saat startup.
Kedua: Buka aplikasi "Startup Application Preferences"
masukkan deskripsi gambar di sini
masukkan deskripsi gambar di sini
Ketiga: klik Tambah. keempat: di bagian NAME beri nama. kelima: Di bagian perintah browse ke .sh Anda. keenam: edit bagian perintah Anda ke:
ketujuh: klik Tambah. Itu dia! Jadi!
Sekarang konfirmasikan dengan me-reboot komputer Anda.
Bersulang!
sumber
Metode yang tidak menyakitkan, termudah dan paling universal hanya menjalankannya dengan
~.bash_profile
atau~.profile
(jika Anda tidak memiliki file bash_profile) .Cukup tambahkan perintah eksekusi di bagian bawah file itu dan itu akan dieksekusi ketika sistem dimulai.
Saya punya contoh di bawah ini;
~\Desktop\sound_fixer.sh
sumber
~/.bash_profile
dijalankan ketika pengguna log in - bukan ketika sistem boot. Dalam pertanyaan awal, tujuannya adalah menjalankan server aplikasi Node.js saat mesin mulai. Solusi Anda akan memerlukan pengguna manusia untuk masuk terlebih dahulu ke mesin sebelum server Node.js berjalan. Dan, jika beberapa jenis masalah menyebabkan server reboot dalam semalam, aplikasi tidak akan hidup kembali sampai manusia masuk kembali.Bagi sebagian orang, ini akan berhasil:
Anda bisa menambahkan perintah berikut ke dalam System → Preferences → Startup Applications :
sumber