Как автоматически создать папку времени выполнения с помощью службы systemd или tmpfiles.d?

У меня был тот же вопрос. Моя проблема была с SD-картой. Это сработало для меня, и это намного проще, чем другие ответы здесь. Я узнал об этом из #928 выпуска Crouton.

$ sudo mount -o remount,exec /media/removable/SD\ Card

Обратите внимание, что вы должны использовать точку монтирования, а не устройство (/dev/mmcblk1p1). То же самое для USB (/dev/sdb1) в вашем случае. Отличается только точка монтирования:

$ sudo mount -o remount,exec /media/removable/USB\ Drive

Вы будете знать, что это имело желаемый эффект, потому что «noexec» исчезнет из параметров монтирования при запросе.

7
29.03.2017, 18:44
2 ответа

I добавлено в PermissionsStartOnly = True и задает папку времени выполнения для каждой службы, как предлагается. Я также добавил 0 в начало режима папки.

[Unit]
Description=gunicorn_django daemon
After=network.target

[Service]
PermissionsStartOnly=True
User=gunicorn
Group=www-data
RuntimeDirectory=gunicorn_django
RuntimeDirectoryMode=0775
PIDFile=/run/gunicorn_django/django_test_pid
WorkingDirectory=/vagrant/webapps/django_venv/django_test
ExecStart=/vagrant/webapps/django_venv/bin/gunicorn --pid /run/gunicorn_django/django_test_pid --workers 3 --bind unix:/run/gunicorn_django/django_test_socket django_test.wsgi --error-logfile /var/log/gunicorn/django_test_error.log
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Теперь создается папка с правильными разрешениями.

drwxrwxrw-  2 gunicorn www-data   40 Mar 30 07:11 gunicorn_django/

Спасибо @quixotic и @ mark-stosberg

13
27.01.2020, 20:18

Моя проблема заключалась в том, что у меня было две службы, использующие одни и те жеRuntimeDirectory(isc-dhcp-serverи isc-dhcp-server6), но я настроил только одну для работы. Поэтому, когда второй сервис умер, его каталог времени выполнения был удален, что создало проблему для первого сервиса.

2
27.01.2020, 20:18

Теги

Похожие вопросы