다음 init.d 스크립트가 있습니다.
#! /bin/sh
### BEGIN INIT INFO
# Provides: Django-Server
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Django Server
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
# If you need to source some other scripts, do it here
case "$1" in
start)
log_begin_msg "Starting Django Server"
python3 "/home/pi/Python Projects/episode_tracker/manage.py" runserver 0.0.0.0:12345 --insecure
python3 "/home/pi/Python Projects/shifts_server/manage.py" runserver 0.0.0.0:23456 --insecure
log_end_msg $?
exit 0
;;
stop)
log_begin_msg "Stopping Django Server"
# do something to kill the service or cleanup or nothing
log_end_msg $?
exit 0
;;
*)
echo "Usage: /etc/init.d/django_server {start|stop}"
exit 1
;;
esac
stop
현재로서는 유용한 작업이 수행되지 않고 있다는 것을 알고 있습니다 .
내 문제는 다음 줄에 있습니다.
python3 "/home/pi/Python Projects/episode_tracker/manage.py" runserver 0.0.0.0:12345 --insecure
python3 "/home/pi/Python Projects/shifts_server/manage.py" runserver 0.0.0.0:23456 --insecure
어떤 이유로 첫 번째 항목만 실행됩니다. 첫 번째 항목에 주석을 달면 두 번째 항목이 실행됩니다(따라서 구문이 정확하고 경로가 존재하는 등).
중요한 경우 운영 체제는 Raspbian입니다.
답변1
이 manage.py runserver
명령은 데몬으로 분기되지 않으므로 init 스크립트가 완료되기를 기다리고 있습니다. &
두 줄의 끝에 추가하여 두 배경을 모두 만들 수 있습니다 .
python3 "/home/pi/Python Projects/episode_tracker/manage.py" runserver 0.0.0.0:12345 --insecure &
python3 "/home/pi/Python Projects/shifts_server/manage.py" runserver 0.0.0.0:23456 --insecure &