Обычный пользователь, касающийся файла в / var / run, не удался - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть программа с именем HelloWorld , принадлежащая пользователю test

HelloWorld создаст файл HelloWorld.pid в / var / run для хранения одного экземпляра. Я использовал следующую команду, чтобы попытаться сделать test и получить доступ к / var / run

usermod -a -G root test

Однако, когда я запускал его, ложил

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Каковы разрешения на /var/run? В моей системе /var/run равно rwxr-xr-x, что означает, что только пользователь root может писать в него. Разрешения не позволяют доступ на запись членам группы root.

Обычный способ справиться с этим - создать подкаталог /var/run, принадлежащий пользователю, под которым вы будете работать ваш сервис. Например,

sudo mkdir /var/run/helloworld
sudo chown myusername /var/run/helloworld

Обратите внимание, что /var/run часто является эфемерной файловой системой, которая исчезает при перезагрузке системы. Если вы хотите, чтобы целевой каталог создавался автоматически при загрузке системы, вы можете сделать это с помощью службы systemd tmpfiles .

0 голосов
/ 29 апреля 2020

Некоторые linux системы хранят файлы времени выполнения для каждого пользователя в /var/run/user/UID/.

В этом случае вы можете создать свой pid-файл в /var/run/user/$(id -u test)/HelloWorld.pid.


В качестве альтернативы просто использовать /tmp.

Возможно, вы захотите использовать имя пользователя в качестве префикса имени файла pid, чтобы избежать конфликтов с другими пользователями, например /tmp/test-HelloWorld.pid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...