Я пытаюсь запустить пользовательский сервис с systemd. Я не админ по профессии, а скорее разработчик.
В настоящее время я тестирую свое решение на Ubuntu 16.04, но планирую развернуть решение на Centos 7. Надеюсь, ничего не изменится.
Однако до сих пор мне удается сделать следующее по сценарию:
- проверьте, что мой сервис эффективно работает при запуске из командной строки
- создайте пользователя john с
/home/john
каталогом (мне нужен этот дом), но без пароля . Я читал, что это будет более безопасно (и надеюсь, что я не ошибаюсь ...). - создать каталог
/home/john/.config/systemd/user
для хранения файлов моей службы. - Включить задержку в соответствии с этим документом
Итак, теперь я хотел бы проверить открытие сессии с Джоном и запустить службы, но это не работает. Я пытаюсь сделать это следующим образом:
sam$ sudo su - john john$ systemctl --user status my-service.service
и собирать это неприятно
Failed to connect to bus: No such file or directory
и независимо от того, какую status/start/stop/list-units
команду я ставлю вместо статуса выше, это всегда одно и то же сообщение.
Команда, которая подключает меня к сеансу john, записывается в эту строку:
$journalctl -e Jun 15 18:16:23 sam-dell sudo[5681]: sam : TTY=pts/2 ; PWD=/home/sam/IdeaProjects ; USER=root ; COMMAND=/bin/su - john Jun 15 18:15:02 sam-dell su[5491]: Successful su for john by root Jun 15 18:15:02 sam-dell su[5491]: + /dev/pts/2 root:john Jun 15 18:15:02 sam-dell su[5491]: pam_unix(su:session): session opened for user john by (uid=0) Jun 15 18:15:02 sam-dell su[5491]: pam_systemd(su:session): Cannot create session: Already running in a session
... и ничего не происходит, когда я пытаюсь systemctl
команды.
Примечание: я добавил пароль своему пользователю, и он все еще не работает с терминала, открытого в моей сессии gnome моего sam
пользователя. Но поскольку у моего пользователя теперь есть пароль, Ubuntu позволяет мне подключаться к нему с помощью gnome, и я могу systemctl --user status/start/stop
без проблем запустить его, войдя в сеанс john gnome.
У кого-нибудь есть идея? Возможно, я неправильно понимаю проблему, я просто хочу запустить службу systemd от имени другого пользователя на моем удаленном сервере, поэтому я полагаю, что я поступил правильно, но, возможно, нет.
Большое спасибо за помощь