odies
@odies
Фрилансер, электронщик

Php ssh + screen script не работает, что я делаю не так?

Здравствуйте. пишу функцию для отправки команд на удаленный сервер через php ssh с использованием screen и wine: этот код работает нормально:
// Параметры запуска
$bash = './linux_app;' 

// Временный файл
$temp = sys::temp($bash);

// Обновляем файл start.sh
$ssh->setfile($temp, $tarif['install'].$server['uid'].'/start.sh', 0500);

// Инициализируем шаги запуска
$ssh->set('cd '.$tarif['install'].$server['uid'].';' // меняем дерикторию для работы
.'rm *.pid;' // Удаляем *.pid файлы
.'chown server'.$server['uid'].':1000 start.sh;' // Обновляем владельца файла start.sh
.'sudo -u server'.$server['uid'].' screen -dmS s_'.$server['uid'].' '.$taskset.' sh -c "./start.sh"'); // Запускаем приложение


Но при попытке переписать скрипт для работы с Windows-приложением с использованием Wine, скрипт не запускает "start.sh":

// Параметры запуска
$bash = 'xvfb-run --auto-servernum wine ./windows_app.exe -batchmode ';

// Временный файл
$temp = sys::temp($bash);

// Обновляем файл start.sh
$ssh->setfile($temp, $tarif['install'].$server['uid'].'/start.sh', 0500);

// Инициализируем шаги запуска
$ssh->set('cd '.$tarif['install'].$server['uid'].';' // меняем дерикторию для работы
.'rm *.pid;' // Удаляем *.pid файлы
.'chown server'.$server['uid'].':1000 start.sh;' // Обновляем владельца файла start.sh
.'sudo -u server'.$server['uid'].' screen -dmS s_'.$server['uid'].' '.$taskset.' sh -c "./start.sh"'); // Запускаем приложение


Хотя если вручную прописать "Параметры запуска" в файле "start.sh" и запустить его вручную, то все работает.

Пробовал запускать без screen. Пробовал запускать с screen , но вместо "start.sh" подставил строку "Параметры запуска", но без результатно.

Пожалуйста, скажите мне, что я делаю неправильно?
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы