Ubuntu — Невозможно получить доступ к сессии tmux через php (shell_exec)

Я создал сеанс tmux на сервере Ubuntu 18.04. Чтобы дать нескольким пользователям Linux доступ к одному и тому же сеансу, я следовал этим
инструкции. Все работает нормально, когда я пытаюсь получить доступ к сокету / сессии tmux от «обычных» пользователей через командную строку.

Я собираюсь создать сценарий для веб-сайта, на котором я хочу запустить или убить эту сессию. Как и в приведенном выше руководстве, я добавил пользователя www-data в группу, которая использует сокет tmux. Чтобы выполнить эти команды tmux над php как суперпользователь, я добавил эту строку www-data ALL=NOPASSWD: /usr/bin/tmux в файл visudo.

Когда я хочу уничтожить уже запущенный сеанс с помощью php (shell_exec), он говорит:

msgstr «нет сервера, работающего на watten_tmux_socket».

Хотя я могу убить этот сеанс той же командой, что и «обычный» пользователь. Что здесь не так?

sudo tmux -S /tmp/watten_tmux_socket kill-session -t WattenServer

РЕДАКТИРОВАТЬ: Запуск сеанса через сокет поверх php также не работает. Сеанс и сокет не создаются в / tmp, а в командной строке это работает.

0

Решение

Хорошо, я сделал обходной путь. Использование sudo в PHP очень небезопасно, поэтому теперь, когда я хочу запустить или завершить новый сеанс tmux через php, я изменяю содержимое txt-файла (что-то вроде servertate: on). Я установил incron apt-get install incron, С помощью incrontab вы можете регистрировать некоторые события сортировки при изменении файла. Поэтому теперь, когда я изменяю содержимое этого файла, запускается скрипт, который запускает или убивает сеанс tmux.

Ссылка: Инкрон учебник

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]