Windowsアプリケーションから、VirtualBox(仮想化ソフト)上の
Linuxのシェルスクリプトが実行されるようにしたいと考えているのですが、
どのような手法があるか、ご教授頂けますでしょうか。
イメージとしては、
Visual Studio上で実行ボタンをクリックすると、
Windows上で実行されるのと同様に、
Windowsアプリケーション上のボタンをクリックすると、
Linux上のシェルスクリプトが実行されるようにしたいと考えております。
仮想環境は起動していることが前提です。
また、開発環境は Visual C# (2010)です。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
UDPかTCPで通信してはいかがでしょう?
Linux上で動作する簡単なデーモンをいっこ作って、(例えばUDP Port12345でListenするもの)
動作命令を受信したらシェルスクリプトを実行。
C言語であればsystem("/path/to/hoge.sh");とかですね。
1.Linuxでスクリプト起動指示待受デーモンを実行
2.C#からUDP Port12345で仮想PCのIPアドレスにスクリプト実行要求送出
3.Linuxでスクリプト実行要求受信
4.system()関数でシェルスクリプト実行
もちろんTCPでもいいしPort番号も別のものでOKです。
ほかには、LinuxでApache+PHPとか動かして、http://[virtualbox-ip]/start.phpにアクセスすると
シェルスクリプトが動作するようにしておくとか。
この場合はC#からHTTPアクセスさせればOKですね。
スクリプト側では
<?
system('/path/to/hoge.sh');
?>
といった感じですね。
パケット使う以外の方法は思いつきいませんでした。
気に入らなかったらすんません。
早速のご回答ありがとうございます!
自分なりに調査した結果、
下記のようにSharpSSHというライブラリを利用してLinuxコマンドを送信できることがわかりました。
/////////////////////
SshExec exec = new SshExec("192.168.0.1", "user", "pass");
exec.Connect();
string stdOut = null;
string stdError = null;
exec.RunCommand("test.sh", ref stdOut, ref stdError);
Console.WriteLine(stdOut);
exec.Close();
/////////////////////
しかし、TeraTermなどのターミナルからスクリプトを実行した際と、
SharpSSHを用いてスクリプトを実行した際において
設定されている環境変数が異なる(envコマンドで比較するとSharpSSH側が少ない)ようで、
正常に実行されませんでした。
事前にすべての環境変数をexportコマンドで設定することで回避はできましたが、
あまりいい方法では無い気がしますので
ご教授頂いた方法も検討させて頂きたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) Ubuntuに仮想環境いれて古いwindows動かしたいんですが、OSイメージ無料で手に入りますか? 2 2023/03/09 23:49
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- Windows 10 WindowsホストのVMware workstationで仮想マシンをシステム起動時に起動できるか 3 2023/06/18 17:52
- UNIX・Linux VertualBox でのLinux Mint の活用方法について教えてください 4 2023/08/06 10:34
- その他(OS) CloudreadyでLinuxのセットアップが出来無い 1 2022/04/06 12:36
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- UNIX・Linux Linux Ubuntu22.4の起動時エラーについて 2 2022/07/22 14:52
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Visual Basic(VBA) VSコードでバックスペースキーが効かない(パイソン) 1 2022/11/09 04:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
ホームページのリンクからプロ...
-
バッチファイルの内容を表示さ...
-
エクセル フォルダの画像を画...
-
Powershellとコマンドプロンプト
-
exeファイルを実行するとコマン...
-
「読み取りと実行」と「読み取...
-
シェルスクリプトの書き方
-
ネットワーク名が見つかりません
-
COBOLのイニシャライズとバリュ...
-
ブラウザーのリンクをクリック...
-
パワーポイントで外部exeファイ...
-
VBscriptが起動しない?
-
メッセージを他のPCに出したい
-
複数のbatファイルを自動実行し...
-
imacroで組んだマクロをバッチ...
-
windows10 デフォルトで開発出...
-
iPodのiTunesをインストール
-
VBAから複数のバッチファイルを...
-
NASに移したBATファイルからセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
「読み取りと実行」と「読み取...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
Excel VBA ステップインが途中...
-
[teraterm] waitコマンドで停止...
-
エクセル フォルダの画像を画...
-
ネットワーク名が見つかりません
-
VB.NETでのDOSコマンドを実行に...
-
Excel(エクセル) VBA プロシー...
-
複数のbatファイルを自動実行し...
-
Excelのセルの内容をコマンドプ...
-
PDFファイルを開き、印刷し、閉...
-
Access の VBA 実行中に他の操...
-
これってパソコンの最適化が完...
-
バッチファイルが不正終了して...
-
VBA 既に開いているBookに継続...
-
VScodeのエラー解決法 Pythonの...
-
【VB.NET】exeを実行すると「発...
おすすめ情報