Saya membuat skrip init.d super dasar untuk bot python saya:
#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
# Source function library.
. /etc/init.d/functions
start() {
echo "starting torbot"
python /home/ctote/dev/slackbots/torbot/torbot.py
# example: daemon program_name &
}
stop() {
# code to stop app comes here
# example: killproc program_name
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
# code to check status of app comes here
# example: status program_name
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
Dan telah ditetapkan torbot.py
menjadi +x
dan #!/usr/local/bin/python
di atas. Ketika saya mencoba untuk benar-benar memulainya, saya mendapatkan:
:/var/lock/subsys$ sudo service torbot start
Failed to start torbot.service: Unit torbot.service not found.
Apakah saya melewatkan sesuatu?
Ok, saya mencoba beberapa langkah jawaban stackoverflow ini ( Menjalankan skrip pemula pada 17.04? ) Dan mereka berfungsi. Env saya adalah sebagai berikut
Pertama, Anda perlu menulis file foo.service.
Arti setiap kata di sebelah kiri tanda '=' dan padanannya dalam (untuk yang sebelumnya) adalah di tautan https://wiki.ubuntu.com/SystemdForUpstartUsers
Setelah file siap, misalkan Anda menamainya sebagai 'foo.service' (ekstensi .service penting)
Anda harus memasukkan file
/lib/systemd/system
Setelah itu Anda perlu mengaktifkan layanan dengan menelepon
Yang akan meminta Anda memasukkan kata sandi root karena akan membuat symlink.
Jika Anda telah sampai di sini tanpa kesulitan, Anda baik-baik saja. Layanan Anda karenanya Mulai dibuat dengan menelepon
systemctl status foo
untuk melihat statussudo service foo stop
untuk menghentikan layanansumber
Pernahkah Anda lelah seperti ini? Bagaimana cara men-debug skrip pemula?
Bisakah Anda memberikan output yang disediakan oleh panduan ini sehingga kami dapat membantu Anda berpotensi men-debug masalah Anda?
sumber
Saya memiliki masalah yang sama, ini adalah solusi yang bekerja untuk saya. Mencoba:
sudo systemctl daemon-reload
sudo systemctl aktifkan daemon_app.service
sudo systemctl mulai daemon_app.service
sumber