Phabricator Daemon: `phd` не удалось переключиться на нужного пользователя с помощью `sudo`

В настоящее время я пытаюсь установить и запустить Phabricator на Raspberry Pi для личного использования (хотя Phacility не рекомендует это, я решил попробовать). До сих пор мне удавалось настроить все, кроме пользователя phd, как демона.

/etc/passwd

phd:x:1001:1001:,,,:/home/phd:/bin/bash

/и т.д./тень

phd:NP:17107:0:99999:7:::

Я создал пользователя phd и дал im NP в тени, но Phabricator по-прежнему не может переключиться на phd при запуске демона.

sudo ./bin/phd restart
Interrupting process 19517...
Process 19517 exited.
Freeing active task leases...
Freed 0 task lease(s).
Starting daemons as phd
Launching daemons:
(Logs will appear in "/var/tmp/phd/log/daemons.log".)

PhabricatorRepositoryPullLocalDaemon (Static)
PhabricatorTriggerDaemon (Static)
PhabricatorTaskmasterDaemon (Autoscaling: group=task, pool=4, reserve=0)

Usage Exception: Daemons are configured to run as user "phd" in
configuration option `phd.user`, but the current user is "root" and
`phd` was unable to switch to the correct user with `sudo`. Command output:

Command failed with error #255!
COMMAND
exec sudo -En -u 'phd' -- ./phd-daemon '--verbose'

STDOUT
(empty)

STDERR
[2016-11-04 08:54:54] EXCEPTION: (Exception) Specified daemon PID directory
('/var/tmp/phd/pid') does not exist or is not writable by the daemon user!
at [<phutil>/src/daemon/PhutilDaemonOverseer.php:115]
arcanist(head=master, ref.master=fad85844314b), phabricator(head=master,
ref.master=6982bded7124), phutil(head=master, ref.master=2b7b1007bf87)
#0 PhutilDaemonOverseer::__construct(array) called at
[<phabricator>/scripts/daemon/launch_daemon.php:13]

Я пытался запустить пользователя phd через su phd -c "/home/phd/phabricator/bin/phd restart", но он запрашивает у меня пароль.

Я придерживался этого руководства https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/, а также этот https://gist.github.com/sparrc/b4eff48a3e7af8411fc1

Любая помощь очень, очень ценится!


person SSND    schedule 04.11.2016    source источник
comment
Возможно, внимательно посмотрите на разрешения каталога PID, на который жалуется STDERR.   -  person JSON    schedule 06.11.2016
comment
Чувак, большое тебе спасибо... Ты не можешь поверить, как это было ужасно неприятно. Если кто-то еще наткнется на это, решение было: sudo chmod 775 /var/tmp/phd/pid sudo chmod go+w /var/tmp/phd/pid   -  person SSND    schedule 07.11.2016


Ответы (2)


Благодаря @JSON, который только что сообщил мне о строке, которую я, по-видимому, всегда пропускал, решение было таким:

sudo chmod go+w /var/tmp/phd/pid

Это сделает директорию доступной для записи и бесплатной для всех, и позволит мне запустить ошибку

person SSND    schedule 06.11.2016
comment
документ установки фабрикатора ужасен тем, что пропускает огромное количество информации! это позор, поскольку производитель настолько удивителен! интерактивный сценарий установки облегчил бы сложность. - person user3791372; 21.02.2017

Мы обычно бежим

sudo -u phd ./bin/phd restart
person CEPA    schedule 04.11.2016
comment
Это не сработало, я думаю. Выполнение команды, которую вы мне дали, привело к следующему: pastebin.com/qH8vByi4 При запросе через sudo -u phd ./bin/phd status он говорит мне, что есть демоны не запущены. - person SSND; 04.11.2016