Saya mencoba untuk menjalankan script ketika saya Raspberry Pi boot up. Saya ingin web browser untuk membuka secara otomatis.
Saya telah mencoba untuk menemukan solusi yang sederhana, (seperti menjatuhkan naskah saya di beberapa "startup" direktori atau sesuatu yang mirip), tapi saya tidak melihat apa-apa seperti itu.
Saya telah melihat ke Pemula, tapi saya'm berjuang untuk memahami bagaimana cara kerjanya. Script saya've mencoba tidak bekerja ketika saya menguji mereka keluar.
Untuk menjalankan Midori pada startup, lihatlah tutorial ini. Untuk solusi DIY, baca terus.
Anda dapat menambahkan script eksekusi perintah ke bawah .bashrc
yang akan jalankan script anda setiap kali membuka terminal (atau menjalankan sebuah instance baru dari bash
).
pi
folder: $ cd ~
$ sudo nano superscript
Simpan dan keluar: Pilih+X, Y, Enter
Membuka .bashrc
untuk konfigurasi:
.bashrc
adalah TIDAK dimaksudkan untuk menjalankan script.
Ini dijalankan setiap waktu non-login shell interaktif dimulai dan digunakan untuk mengkonfigurasi shell.
~/.bashrc: dieksekusi oleh bash(1) untuk non-login kerang
.
$ sudo nano .bashrc
Gulir ke bawah ke bagian bawah dan tambahkan baris: ./superscript
Simpan dan keluar: Pilih+X, Y, Enter
Jika anda mencari solusi yang bekerja pada bootup untuk konsol, lihat di link ini. Dasar rundown:
$ sudo nano /etc/init.d/superscript
Simpan dan keluar: Pilih+X, Y, Enter
Membuat script yang dapat dijalankan:
$ sudo chmod 755 /etc/init.d/superscript
$ sudo update-rc.d superskrip default
Jika anda ingin skrip jalankan ketika anda boot ke LXDE lingkungan, anda bisa lihat di ini Raspberry Pi forum post:
Arahkan ke ~/.config/lxsession/LXDE-pi
Buka autostart
file dalam folder itu:
$ sudo nano autostart
Tambahkan @midori
pada baris baru. Jika anda ingin menjalankan sesuatu seperti sebuah script python, menempatkan sesuatu seperti @python mypython.py
pada baris baru. Menjalankan file script yang akan @./superscript
, tapi untuk beberapa alasan script berjalan di infinite loop (mungkin ini akan berhenti).
Simpan dan keluar: Pilih+X, Y, Enter
Restart anda Raspberry Pi ke LXDE lingkungan.
Cara saya've melihat kebanyakan orang melakukannya (lihat pada Raspberry Pi forum), dan telah dilakukan sendiri dengan sukses menggunakan /etc/rc.lokal
.
Semua yang perlu anda lakukan di sini adalah menempatkan ./myscript
di rc.local file teks. Jika itu's di python, menempatkan python myscript.py
.
Ini secara harfiah adalah "solusi sederhana, (seperti menjatuhkan naskah saya di beberapa "startup" direktori atau sesuatu yang serupa)"- mungkin cari di forum bila anda're memiliki pertanyaan-pertanyaan juga, solusi ini datang pada 4 pertama hasil pencarian google!
Jika script anda ingin memulai memerlukan xorg sesi maka anda bisa mencoba mengikuti freedesktop autostart spec yang mungkin atau mungkin tidak bekerja tergantung pada lingkungan desktop yang anda gunakan.
Atau, anda dapat menargetkan spesifik lingkungan desktop seperti yang dijelaskan di https://wiki.archlinux.org/index.php/autostarting.
Jika naskah anda cocok dengan deskripsi dari daemon atau 'layanan', dan sistem anda berjalan dev yang merupakan kasus untuk raspbian dan paling modern linuces, maka anda dapat mengkonfigurasi script untuk menjalankan sebagai systemd layanan ini menyediakan kontrol granular atas siklus hidup dan eksekusi lingkungan, serta prasyarat untuk (kembali)mulai script, seperti jaringan yang sedang berjalan. Hal ini juga memungkinkan untuk mengkonfigurasi layanan restart dalam kasus kegagalan (Restart=selalu
, dan penundaan antara restart misal RestartSec=10
).
Untuk sistem yang digunakan secara luas membuat anda systemd unit file /etc/systemd/sistem
, misalnya dengan vim /etc/systemd/system/autossh.layanan
:
[Unit]
Description=Autossh keepalive daemon
## make sure we only start the service after network is up
Wants=network-online.target
After=network.target
[Service]
## use 'Type=forking' if the service backgrounds itself
## other values are Type=simple (default) and Type=oneshot
Type=forking
## here we can set custom environment variables
Environment=AUTOSSH_GATETIME=0
Environment=AUTOSSH_PORT=0
ExecStart=/usr/local/bin/ssh-keep-alive.sh
ExecStop=/usr/bin/killall -9 autossh
### NOTE: you can have multiple `ExecStop` lines
ExecStop=/usr/bin/killall ssh
# don't use 'nobody' if your script needs to access user files
# (if User is not set the service will run as root)
#User=nobody
# Useful during debugging; remove it once the service is working
StandardOutput=console
[Install]
WantedBy=multi-user.target
Lihat juga:
Sekarang kita siap untuk menguji layanan:
systemctl start autossh
Memeriksa status layanan:
systemctl status autossh
Menghentikan layanan:
systemctl stop autossh
Setelah anda memverifikasi bahwa layanan tidak bekerja seperti yang diharapkan mengaktifkannya dengan:
systemctl enable autossh
CATATAN: Untuk tujuan keamanan
systemd
akan menjalankan script di lingkungan terbatas, mirip dengan bagaimanacrontab
script dijalankan, oleh karena itu don't membuat asumsi tentang pra-ada variabel sistem. GunakanLingkungan
tombol jika naskah anda kebutuhan spesifik variabel harus didefinisikan. Menambahkanset-x
di atas anda bash script dan kemudian berjalansystemctl status my_service
mungkin membantu mengidentifikasi mengapa naskah anda gagal. Sebagai rule of tumb, selalu menggunakan jalur mutlak untuk segala sesuatu termasukecho
dankucing
, atau secara eksplisit menentukan $PATH.
Aku ingin melempar dua sen, meskipun ini adalah pertanyaan lama tapi sering diminta untuk melakukan hal yang sederhana - autostart. Saya mencoba semua solusi yang disarankan di semua jawaban untuk pertanyaan ini. Tidak SATUPUN dari mereka bekerja untuk saya. Saya menggunakan Raspberry PI Model 2 dengan Raspbian.
Satu-satunya cara saya bisa mendapatkan aplikasi saya untuk autostart berhasil adalah melalui script seperti berikut. Saya katakan sukses karena aplikasi saya mulai seperti yang diharapkan tanpa mengalami masalah seperti dimulai dengan kerja yang salah jalan.
1.Buat file kosong dengan ekstensi .sh dan nama apapun yang anda inginkan.
2.Copy dan Paste kode berikut PERSIS kecuali perubahan, "aplikasi anda nama" untuk nama script yang baru saja anda buat.
#! /bin/sh
### BEGIN INIT INFO
# Provides: noip
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
### END INIT INFO
#change /direct/path/to/your/application to the path your application is in.
cd /direct/path/to/your/application # example cd /home/pi/myprogram/
#change YourProgramExactName to Exact name of your program that you want to auto start
./YourProgramExactName
exit 0
Kemudian, simpan script file dalam folder aplikasi
Kemudian, buka /home/pi/.config/autostart
folder. Ini mungkin berbeda dalam kasus anda. Hanya buka home folder anda dan memungkinkan melihat folder tersembunyi. terbuka .config/autostart
. Jika anda don't see autostart folder, kemudian buat sebuah folder bernama autostart dalam .folder config.
dalam autostart folder yang anda akan perlu untuk membuat shortcut ke file script yang anda buat sebagai berikut. Buat file kosong dengan ekstensi .desktop
.
Copy dan paste kode berikut di bagian kosong di desktop file kecuali anda akan perlu untuk mengubah Komentar
, Nama
, Exec
, Path
dan Ikon
field's nilai.
[Desktop Entry] Komentar= Exec=/path/ke/Direktori/application/Nama-of-the-script-file (.sh) Icon=/Path/ke/Direktori/aplikasi/Icon/IconName Nama=YourApplicationEXACTNAME Path=/Path/ke/Direktori/Aplikasi-HANYA Type=Aplikasi
Saya juga punya masalah dengan ini. Pada Raspberry Pi3 berjalan Raspbian ini adalah apa yang saya lakukan:
sudo leafpad launch.sh
sudo leafpad /home/pi/.config/lxsession/LXDE-pi/autostart
./launch.sh
Pada Raspberry Pi3 berjalan Raspbian Peregangan ini adalah apa yang saya lakukan:
Mengedit LXDE-pi autostart file
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Tambahkan ini ke bawah dari file tersebut
@sudo python3 /path/to/your/script.py
simpan & reboot
Untuk memulai sebuah perintah secara otomatis login, masukan perintah ke dalam sebuah file bernama
.bashrc
dalam buku direktori (misalnya /home/pi)
.bashrc
adalah TIDAK dimaksudkan untuk menjalankan script.
Ini dijalankan setiap waktu non-login shell interaktif dimulai dan digunakan untuk mengkonfigurasi shell.
~/.bashrc: dieksekusi oleh bash(1) untuk non-login kerang
.
Sebagai contoh, file bisa berisi
chromium-browser --kiosk www.google.com
untuk memulai Kromium dalam layar penuh untuk menunjuk www.google.com
Mengedit file autostart:
sudo nano /etc/xdg/lxsession/LXDE/autostart
Komentar semuanya menggunakan '#' di mulai dari setiap baris dan kemudian tambahkan baris berikut
@xset s off
@xset -dpms
@xset s noblank
@midori -e Fullscreen -a http://google.com
Jika perlu gunakan alat konfigurasi untuk mengaktifkan auto menjalankan GUI pada powerup
sudo raspi-config
Jika anda perlu untuk keluar kembali ke command prompt PILIH + ALT + F1
PILIH + ALT + F2
membuat .sh file dengan perintah 'python /path/ke/file/script.py' tipe 'sudo nano /etc/rc.lokal' dan jenis lintasan .sh file
sebelum
exit 0
Atau anda hanya bisa mengetik di
crontab -e
atau
sudo crontab -e
jika anda ingin script untuk dijalankan pada startup
dalam jenis file di
@reboot python /path/to/your/script.py &
Ini adalah apa yang saya biasanya lakukan.
sudo nano .bashrc
.bashrc
adalah TIDAK dimaksudkan untuk menjalankan script.
Ini dijalankan setiap waktu non-login shell interaktif dimulai dan digunakan untuk mengkonfigurasi shell.
~/.bashrc: dieksekusi oleh bash(1) untuk non-login kerang
.
sudo python mycode.py
sudo python mycode.py >> output.py
Harap ini membantu!