0

実行しようとするたびに

if (!($stream = ssh2_exec($con, "cd $dir; screen -S creative java -Xmx500M -Xms500M -jar spigot.jar" ))) {

「ターミナルに接続する必要があります」と返され続けます。私は回避できないようです。これを回避/修正するにはどうすればよいですか?

4

3 に答える 3

1

phpseclibの read() / write() 関数を使用してみてください。例えば。

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("ls -la\n"); // note the "\n"
echo $ssh->read('username@username:~$');
于 2014-12-02T14:39:36.077 に答える
0

あなたが行ったように画面を開始するには、セッションに接続されているため、有効な TTY が必要です。PHP の ssh 実装は、そのようなセッションを作成しません。

画面を切り離して起動すると、次のようになります。

screen -d -m [<command>]

したがって、コードは次のようになります。

if (!($stream = ssh2_exec($con, "cd $dir; screen -d -m -S creative java -Xmx500M -Xms500M -jar spigot.jar" ))) {
于 2014-12-02T14:44:30.890 に答える