И так у нас есть живой настроенный сервак, который может нам говорить привет. Даже с песочницей. Не плохо, но при использовании его для разработки придется делать много телодвижений, что бы поднять то, что упало, из-за нашей неопытности/невнимательности/какой-нибудь фигни.
Как говорится, "фрезеруй, пока молодой"!
Так как у нас есть Арч с его systemctl, который может как император в висги погонять вассалами, но еще он умеет их просто релоадить. Особенно круто, что он умеет их релоадить после изменения контента в указанных директориях.
Костыль c названием
Как говорится, "фрезеруй, пока молодой"!
Так как у нас есть Арч с его systemctl, который может как император в висги погонять вассалами, но еще он умеет их просто релоадить. Особенно круто, что он умеет их релоадить после изменения контента в указанных директориях.
Костыль c названием
uwsgi@.service
кладем в /etc/systemd/system
[Unit] Description=uWSGI worker After=syslog.target [Service] ExecStartPre=/bin/mkdir -p /run/uwsgi ExecStartPre=/bin/chown http:http /run/uwsgi ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/apps/%i.ini ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT Restart=always Type=simple StandardError=syslog [Install] WantedBy=multi-user.targetОн умеен останавливать и перезапускать инстанс ручками.
systemctl start uwsgi@proj_name
systemctl enable uwsgi@proj_name
systemctl stop uwsgi@proj_name
systemctl reload uwsgi@proj_nameА вот что бы он сам перезапускался по обновлению содержимого папки/файлов, нужно рядом нагородить еще uwsgi-autoreload@.service
[Unit] Description=uWSGI worker autoreloader After=syslog.target [Service] ExecStart=/usr/bin/systemctl reload uwsgi@%i Type=oneshot StandardError=syslog RemainAfterExit=no [Install] WantedBy=multi-user.targetи uwsgi-autoreload@.path
[Unit] Description=uWSGI worker path watcher After=syslog.target [Path] PathChanged=/srv/http/%i/src [Install] WantedBy=multi-user.target
systemctl enable uwsgi@proj_name start uwsgi-autoreload@proj_name systemctl enable uwsgi-autoreload@proj_nameЭто выглядит неплохо, но любители убунты могут не улыбнуться на этом моменте, так как вместо systemctl у них init.d и таких возможностей у них нет. Посему надо бы рассмотреть более кросплатформенный вариант, а это решение я подсмотрел у друга, и большую часть извращений которые использованы выше понять я даже не пытался - это просто работает :)