Saya telah membangun jaringan sensor nirkabel yang terdiri dari dua Raspberry Pi (runnnig Raspbian) dengan sensor dan stasiun pangkalan Raspberry Pi yang mengumpulkan data.
Setiap kali saya ingin menjalankan sistem, saya harus masuk ke setiap unit sensor dan menjalankan dua program Python perulangan, satu untuk mengumpulkan data sensor dan satu lagi untuk mentransmisikan ke stasiun pangkalan.
Unit-unit ini pergi ke lokasi yang canggung tanpa akses internet sehingga membawa monitor, keyboard, dan mouse untuk menjalankannya tidaklah mudah. Apakah ada cara saya dapat mengaturnya untuk masuk secara otomatis, menjalankan program 1 dan kemudian menjalankan program 2 secara otomatis saat startup?
sudo
denganrc.local
sendirinya. Ini dijalankan dengan hak akses root saat boot. Pastikan untuk memperhatikan bagian tentang menggunakan&
kecuali jika program Anda hanya melakukan sesuatu dengan cepat kemudian keluar./path/to/somescript.sh &
kerc.local
, dan dalam skrip tambahkanwhile ! ping -c 1 -W 1 8.8.8.8; do sleep 1; done;
sebelum memulai program Anda.rc.local
tanpa menjalankan sudo sebelumnya. Apa yang Anda sarankan?Jawaban oleh Xer0FyT mungkin adalah cara paling sederhana untuk secara otomatis memulai program pada PI. Tetapi masalah terjadi begitu program yang dijalankan macet karena alasan apa pun karena tidak dapat dimulai ulang, karena tidak ada proses pemantauan. Saya pribadi akan merekomendasikan menggunakan daemontools sebagai gantinya. Pengaturannya cukup sederhana (dan termasuk dalam Raspbian). Pada dasarnya Anda membuat direktori layanan yang berisi
run
skrip shell yang memulai program Anda. daemontools kemudian akan memastikan bahwa program Anda dimulai dan dimulai kembali jika crash karena alasan apa pun.Pengaturan daemontools cukup sederhana. Hanya
Kemudian buat direktori layanan Anda yang berisi skrip run yang dapat dieksekusi:
Lihat
/service/my-service/run
dan edit, jadi ini memulai program Anda sendiri dan bukan berjalanecho
. Setelah selesai, symlink direktori tersebut ke/etc/service
daemontools secara otomatis (kembali) memulainya:Setelah sekitar 5 detik, program Anda akan berjalan. Anda dapat memulai / menghentikannya menggunakan
Anda juga dapat masuk ke (misalnya) syslog. Jadi output dari program Anda tidak hilang. Saya menulis posting blog yang lebih lengkap tentang ini di sini: https://info-beamer.com/blog/running-info-beamer-in-production
sumber
tutup aplikasi konfigurasi LXSession dan reboot pi Anda
aplikasi java Anda harus dijalankan setelah reboot
sumber
Anda mungkin sudah
cron
menginstal untuk beberapa tugas rumah tangga PI.Cari
man 5 crontab
untuk@reboot
.sumber
Anda mungkin ingin meneliti
service
. Anda dapat membuat skrip init yang merupakan bagian dari init sistem, dan meletakkannya di runlevel yang sesuai.Lari
man service
.Berikut ini adalah panduan untuk membuat skrip init: http://www.novell.com/coolsolutions/feature/15380.html
sumber
systemd
sebagian besar distribusi Linux, termasuk Raspbian, jawaban ini perlu diperbarui jika OP memperbarui sistem mereka sehingga mengambil alih dari sysVinit
... 8- (Ikuti saja tautan ini .
Dengan asumsi Anda memiliki test.txt di desktop, contohnya bisa:
dan itu berhasil!
sumber