Yanıtlar:
Komut dosyasını uygun bir zaman çizelgesiyle uygun kullanıcı cron
tablosuna (yani crontab ) koyun @reboot
.
Bir kullanıcı cron
tablosunu ile düzenleyebilir crontab -e
.
/path/to/script.sh
Başlangıçta çalışacak bir örnek :
@reboot /path/to/script.sh
Kök olarak çalıştırmanız gerekiyorsa kullanmayın @reboot sudo /path/to/script.sh
; Kökün crontab'ını düzenlemek için
kullanın sudo crontab -eu root
.
Ayrıca bakınız: crontab (1), cron (8), crontab (8)
Ubuntu 15.04 ve ileri sürümleri varsayılan olarak systemd
başlangıç hizmetlerini ve yordamlarını otomatikleştiren bir program olan bir çeşit kullanır . Sadece biraz çaba ile kendi başınıza yapabilir ve başlangıç hizmetleri listesine ekleyebilirsiniz.
Temel Sistem Hizmeti
Bu, .service
python gui sunucumu başlatmak için kullanılabilecek bir barebones dosyasıdır (bir kabuk betiği olabilirdi, önemli değil):
[Unit]
Description=Python GUI Server
[Service]
ExecStart=/home/pi/software/GUI_POE.py &
[Install]
WantedBy=multi-user.target
Description
Opsiyon hizmeti olduğunu ve ne yaptığını açıklanan herhangi bir dizedir.
ExecStart
Seçenek yürütülecek komutu belirtir. Burada, yürütülebilir bir python betiğine yol veriyorum &
ve arka planda çalıştırmak için jetonu kullanıyorum .
WantedBy
Ne hedefine dayalı seçeneğin belirtir öncelik, bu hizmeti kullanmak istiyor. Hizmetinizin çok belirli bir zamanda çalışması için ihtiyacınız yoksa, yalnızca olarak ayarlayın multi-user.target
.
Temel Prosedür
Başlangıçta çalıştırmak istediğiniz komut dosyasını nano
veya istediğiniz bir düzenleyiciyi kullanarak yazın. Dosyanın en üstüne uygun basmayı eklediğinizden emin olun ( #!/bin/bash
bash komut dosyaları için) ve ona yürütülebilir izinler verin chmod
.
Hizmetinizi my_service.service adlı bir dosyaya yazın ve ardından uygun dizine kopyalayın cp my_service.service /lib/systemd/system/
.
Senin hizmetini başlatın: sudo systemctl start my_service.service
. Bu, hizmetinize çalıştırılmasını söylediğiniz komut dosyalarını başlatır. Başlat yerine "durdur" ile aynı komut onu kapatır.
Başlangıç sürecine hizmetinizi ekleyin: sudo systemctl enable my_service.service
. Kaldırmak için, aynı komutta "enable" yerine "enable" olarak değiştirin.
Ve bu kadar! Komut dosyanızın sistemd hizmetlerinde varsayılan olarak otomatik olarak kök izinleriyle çalıştırılacağını unutmayın.
Basit Örneğim (Tam)
Referans için, burada Dash kullanarak basit bir Python GUI Sunucusu başlatan basit bir systemd hizmeti var:
[Unit]
Description=Python GUI Server
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/home/pi/software
ExecStart=/home/pi/software/GUI_POE.py &
Restart=always
RestartSec=15s
KillMode=process
TimeoutSec=infinity
User=pi
Group=pi
[Install]
WantedBy=multi-user.target
Bu örnek hizmet bir Python3 komut dosyası kullanır, ancak formül bir kabuk komut dosyası için tam olarak aynıdır.
Daha fazla okuma DigitalOcean tarafından bu mükemmel öğretici bulunabilir ve bu AskUbuntu konu systemd öğrenmeme yardımcı mükemmel bir cevap ile. Bu yardımcı olur umarım!