LINUX.ORG.RU

> Форум - Web-development

Исполнение программы без вывода

O_o.

>> /dev/null не подходит

&> /dev/null

tn1
()

>> /dev/null не подходит

почему?

Tanger ★★★★★
()

Наверно не так выразился. При исполнении шелл становится самой программой, и нужно либо дожидатся пока исполнится до конца программа либо переподключаться для того чтобы продолжать работать в шелле. Можно юзать в конце & , но все равно нужно в дальнейшем нажимать ентер. Так вот более точный вопрос. Как сделать чтобы программа исполнялась в фоне без всякого вывода?

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

ssh2_exec, а при исполнении этой команды сервер все равно ждет окончания работы программы.

YmOn
() автор топика

Пошли туда ентер. На нашем питоне помогал expect, может и тебе поможет? Есть expect для php?

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

Ентер не пошлется до тех пор, пока не исполнится команда.

http://www.jonnyfunfun.com/2008/04/04/using-expect-to-execute-ssh-commands-in...

В английском к сожалению не шарю. Появился вариант делать screen -dmS `whoami` command & но почему-то это работает через раз.

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

Вы пока на первом месте по кривосте поста в моем списке за неделю.

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

Если коротко: 1) выкидываешь php_ssh
2) используешь exec для того, чтобы сделать spawn ssh на локальной системе
3) вписываешь в expect все нужные тебе события (обрати внимание что в примере останов тут закожен на eof)
4) парсишь выхлоп exec'а (т.е. выхлоп твоей программы), если оно тебе нужно.

Вот примерный код:

exec("echo 'spawn ssh username@localhost ls ~/; expect \"(yes/no)?\"; sleep 1; send \"yes\\r\"; expect \"password:\"; sleep 1; send \"password\\r\"; expect eof;' | expect",$str);
foreach ($str as $strstr) {
print_r($strstr);
echo "\n\r";
}

У меня подобным способом (но на питоне) работал «первый в мире паразитический дистрибутив»: скрипты для plaintext-авторизации по ssh, простенький пакетный менеджер, собирающий в хомячке пользователя LFS, итп. Т.е. способ работает.

stevejobs ★★★★☆
()

засуетился в screen

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.