Я пытаюсь запустить команду. sh файл, который содержит некоторые простые данные (пока, пока я не выясню основы). Ниже скриншот того, что у меня есть.
В основном я хочу запустить скрипт PHP, который вызовет скрипт command.sh
, чтобы запустить новый экземпляр TMUX и запустить в нем скрипт python. Есть второй command2.sh
скрипт, который просто показывает, какие сеансы TMUX запущены.
Вот код в файлах:
тест. php
<?php
$output = shell_exec("sudo -S -u root ./command.sh 2>&1");
$output2 = shell_exec("sudo -S -u root ./command2.sh 2>&1");
echo "<br>User:".get_current_user()."<br>";
$processUser = posix_getpwuid(posix_geteuid());
echo "<br>Username: ".$processUser['name'];
$groupInfo = posix_getgrgid(posix_getgid());
$group = $group;
echo "<br>Group: ".$processUser['name'];
echo "<br>Done:".$output."<br>";
echo "<br>Running:".$output2."<br>";
?>
команда. sh
tmux new -s Test1 -d 2>&1 \; send-keys "python3 test.py" Enter
Вызов кода работает, и вы можете увидеть, что сеансы созданы (вывод из моего PHP файла). Вы можете видеть, что я запустил код дважды и, следовательно, сгенерировал «дублирующую сессию»
command2. sh
tmux ls 2>&1
test.py
print("Hello World!")
Выход:
Проблема
Проблема в том, что я не могу просмотреть этот сеанс в PuTTy или любой другой консоли. Когда я запускаю tmux ls
при входе в систему как root, я получаю следующее:
Итак, из вывода PHP выше я вижу, что .sh
работает успешно, но мне нужно иметь возможность войти в PuTTy для доступа к этим сеансам.
Я думаю, что это так, как сценарии выполняются от имени пользователя "www-data", но я не уверен, как это изменить.
Как вы можете видеть в коде test.php
, я использую команду sudo
, чтобы заставить пользователя, но это, похоже, не работает - мне также нужно убедиться, что сайт безопасен .
Я пытался понять это в течение нескольких дней! Любой совет будет очень признателен!
Спасибо Крис