sshを使用してリモートマシン上でアプリケーションを実行するにはどうすればよいですか?sshでリモートマシン上でアプリケーションを実行するにはどうしたらいいですか?
私はJSCH、この方法を使用してみました:
Properties props = new Properties();
props.put("StrictHostKeyChecking", "no");
String host = "111.111.11.111";
String user = "myuser";
String pwd = "mypass";
// int port = 22;
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setConfig(props);
session.setPassword(pwd);
session.connect();
System.out.println(session.getServerVersion());
System.out.println("Conected!");
// String command = "ps -ef;date;hostname";
String command = "myapplication someFileAsParameter";
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(command);
// channel.setInputStream(System.in);
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();
と私はこれがあります。
のbash:します。myapplication:シェルでこのコマンドを実行しようとすると
を見つけていないコマンド、作品を良い。
必ずしもJSCHである必要はありませんが、何でもかまいません。
がいこれはあなたの場合は動作します - (、私は考えて
exec
チャンネルは非対話型になります。のみ、これらのファイルの一部は、非対話型ログイン双方向対上で実行されますパスは~/.bashrc
、~/.profile
、/etc/profile
または/etc/bash.bashrc
に設定されている天気を確認してください。)コマンドラインsshを使用しますか? 'ssh [email protected] myapplication someFileAsParameter' –また、' ps'でも動作しましたか? –
JSch経由でログインしたときにコマンドがあなたのPATHに入っていますか?私はここにログイン対非シェルの問題があるかもしれないという曖昧な感情を持っています。 – qid