Просто посмотрите мой пост здесь, на ubuntuforums:
http://ubuntuforums.org/showthread.php?t=1497253
Создать виртуальный диск
dd if=/dev/zero of=virtual.dsk bs=1048576 count=150
Форматировать это
mkfs.vfat virtual.dsk
Смонтировать
sudo mkdir -p /mnt/vfat
sudo mount virtual.dsk /mnt/vfat -t vfat -o loop
PS: Постоянно смонтировать:
/path/to/virtual.dsk /mnt/vfat vfat loop,owner,group,umask=000 0 0
Вместе с дополнительной информацией здесь: http://fatter-keine.dk/helptipsguides/ubuntu/understanding_fstab.html
Попробуйте:
pi@raspberrypi:~ $ systemctl status ReadPressure.service
Перефразируя @Ingo из Мне не удается запустить программу Python в Thonny при запуске
Сообщение об ошибке (code=exited, status=203/EXEC )часто появляется, когда не удается выполнить сам скрипт или его интерпретатор.
Это могло иметь следующие причины:
неверный путь к скрипту (например. /home/py/ReadPressure2AndPostToMqtt.py)
скрипт не выполняется
но шебанг (первая строка)
неверный путь в шебанге (напр. /bin/python3)
Во внутренних файлах вашего скрипта могут отсутствовать права доступа.
SELinux может препятствовать выполнению параметра ExecStart; проверьте /var/log/audit/audit.log на наличие сообщений формы:type=AVC msg=audit([...]): avc: denied { execute }
или в выводе ausearch -ts recent -m avc -i
.
Неверный параметр WorkingDirectory
Вам может понадобиться процитировать вашу команду, например.:
ExecStart="/bin/bash -c 'python3 bla blah'"
Для меня проблема была на самом деле предыдущей службой с тем же именем, которую я пытался установить ранее. Я мог сказать, что это была проблема, по ссылкам на старую службу в журнале. Удаление старой службы и запуск «systemctl daemon -reload» устранили проблему для меня.
В моем случае я получил следующую ошибку :... /usr/bin/env: 'python3\r': No such file or directory
на основе шебанга:
#!/usr/bin/env python3
Мне понадобилось некоторое время, чтобы заметить возвращение Кареты '\r'
. После удаления все заработало.
Другой возможной причиной status=203/EXEC
может быть SELinux. В моем случае у меня был юнит-файл, который запускал скрипт Python :
[Unit]
Description=LibreNMS SNMP Poller Service
After=network.target
[Service]
ExecStart=/opt/librenms/librenms-service.py -v -d
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/opt/librenms
User=librenms
Group=librenms
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Сценарий Python имел дескриптор типа SELinux httpd_sys_content_t
, выполнение которого было запрещено. Я увидел ошибку, используя audit2why < /var/log/audit/audit.log
, которая выглядела как
type=AVC msg=audit(1631272189.992:1032): avc: denied { execute } for pid=2873 comm="(rvice.py)" name="librenms-service.py" dev="sda3" ino=714393 scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
В итоге я отредактировал контекст безопасности.
Непостоянное редактирование (для тестирования):
chcon -t bin_t /opt/librenms/librenms-service.py
Постоянное редактирование:
semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py'
restorecon -Fv /opt/bin/librenms-service.py