Intereting Posts
Преобразование списка с разделителями строк с пробелами в аргументы резервная база данных MSSQL на локальный диск клиента по сети Как скопировать все файлы HTML из дерева каталогов в один каталог Zenity отказывается работать в фоновом режиме Отключение удаленного диска с помощью cifs bash: egrep & эхо-ошибка на линии для конвенции, в какой папке я должен помещать не устанавливаемые приложения? Как найти недостающий код C Iotop показывает swapin, но vmstat si равен нулю Программно изменить атрибуты значков рабочего стола Что делает мой курсор «случайным образом» исчезающим при использовании gnome-teminal? Я просто «mv» создал 49-гигабайтный каталог для плохого пути к файлу, возможно ли восстановить исходное состояние файлов? Могу ли я удалить домашний раздел и создать новый (более крупный) раздел с теми же файлами без проблем? Планирование задачи при запуске системы Как удалить пробелы из выбранных строк

Systemd: служба Python не может быть перезапущена после остановки

На Raspbian Jessie я пишу скрипт Python, автоматически запускаемый systemd. Как SSCCE, давайте напишем тривиальный скрипт Python в качестве сервиса:

cat >/home/pi/service.py <<EOF from time import sleep sleep(99999) EOF 

Это прерывается с помощью SIGINT, поэтому я настраиваю службу таким образом и говорю systemd. SIGINT – это правильный способ ее закрытия:

 cat >/lib/systemd/system/python-service.service <<EOF [Unit] Description=Python service [Service] Type=simple TTYPath=/dev/tty1 StandardInput=tty StandardOutput=tty ExecStart=/usr/bin/nohup /usr/bin/python /home/pi/service.py KillSignal=SIGINT SuccessExitStatus=SIGINT [Install] WantedBy=multi-user.target EOF 

Затем я устанавливаю systemd для запуска этой службы:

 systemctl set-default multi-user.target systemctl daemon-reload systemctl enable python-service.service 

Служба правильно настроена, запущена и может быть остановлена, но не может быть перезапущена, если мы не перезагружаемся:

 # I first check that the service has been run at startup: pi@raspberrypi:~ $ systemctl status python-service.service ● python-service.service - Python service Loaded: loaded (/lib/systemd/system/python-service.service; enabled) Active: active (running) since Mon 2017-01-09 01:56:47 UTC; 59s ago Main PID: 419 (python) CGroup: /system.slice/python-service.service └─419 /usr/bin/python /home/pi/service.py # It runs fine, now I stop it pi@raspberrypi:~ $ sudo systemctl stop python-service.service # Let's start it again pi@raspberrypi:~ $ sudo systemctl start python-service.service # And consult the current status, I assume the parenthesis mean there is an issue pi@raspberrypi:~ $ systemctl status python-service.service ● python-service.service - Python service Loaded: loaded (/lib/systemd/system/python-service.service; enabled) Active: active (running) since Mon 2017-01-09 01:59:54 UTC; 2s ago Main PID: 833 ((nohup)) CGroup: /system.slice/python-service.service └─833 (nohup) # And indeed no service.py is running pi@raspberrypi:~ $ ps ax|grep service 839 pts/0 S+ 0:00 grep --color=auto service