LINUX.ORG.RU
решено ФорумAdmin

Ubuntu user servise systemd

 , , ,


1

1

Есть VPS с установленной Ubuntu 16.04. Как заставить сервис системд выполнятся от имени пользователя? Пользовательский сервис храню в этой папке ~/.config/systemd/user/. Но при попытке запустить сервис говорит что данного сервиса не существует. В чем может быть проблема и что я делаю не так? Заранее всех благодраю.
puma.service

[Unit]
Description=Puma application server for domain
After=network.target

[Service]
WorkingDirectory=/home/user/web/domain/project
Environment=RAILS_ENV=production
User=user
PIDFile=/home/user/web/domain/project/shared/pids/puma.pid
ExecStart=/home/user/.rbenv/shims/bundle exec \
         /home/user/.rbenv/shims/puma \
         -C /home/user/web/domain/project/config/puma.rb

[Install]
WantedBy=multi-user.target

★★★

Последнее исправление: oster2011 (всего исправлений: 1)

Надо выполнять от имени пользователя (будучи в него залогиненным) и с аргументом --user для systemctl.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Попробовал еще раз и по всей видимости я что-то делал не так. Так как сейчас сервис попытался запустится но при попытке узнать статус вижу это

● puma_agrovip.service - Puma application server for agrovip
   Loaded: loaded (/home/agrovip/.config/systemd/user/puma_agrovip.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Пн 2017-08-21 14:02:05 EEST; 8s ago
  Process: 28142 ExecStart=/home/agrovip/.rbenv/shims/bundle exec /home/agrovip/.rbenv/shims/puma -C /home/agrovip/web/agrovip.com.ua/agro_2/config/puma.rb (code=exited, status=216/GROUP)
 Main PID: 28142 (code=exited, status=216/GROUP)
. если запускать его от рута и когда он лежит в /etc/systemd/system/ то работает. Ошибка в моей сервисе?

oster2011 ★★★
() автор топика
Ответ на: комментарий от oster2011

status=216/GROUP

Копай в эту сторону. Правда, я не знаю, что это может значить.

если запускать его от рута и когда он лежит в /etc/systemd/system/ то работает.

Значит проблема с правами (запись? чтение?). Уверен, что юзер может читать/писать куда сервису надо?

r3lgar ★★★★★
()
Ответ на: комментарий от oster2011

Да он имеет полные права на свой каталог

А когда ты запускал от рута, файлы/директории могли быть пересозданы от рута и, соответственно, теперь принадлежат ему. Чекай рекурсивно.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Ничего не пересоздавалось а только исполнялось

oster2011 ★★★
() автор топика

intelfx

Я тоже не осилил и в итоге пустил как пускается (но у меня баунсер, не критично, но не приятно).

mandala ★★★★★
()

Проблема решена

Всем спасибо за помощь) Нужно было убрать данную строку. User=user
Ее нужно указывать если ты сервис будешь запускать от рута.
От обычного пользователя если скрипт лежит в твоей директории не требуется данная строка.

oster2011 ★★★
() автор топика
Последнее исправление: oster2011 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.