最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

おかげさまで無事接続できました! Re: 最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

- fuugetu flowerbird の投稿
返信数: 2

シノバーさん、

ご案内いただいたシノバーさんのブログにお伺いして

ご用意いただいた手順でスクリプトを実行したら無事元の状態でシムが復活出来ました!

本当にありがとうございました!

 

一応こちらに事の経緯と今の環境を書いておきます。

先日までお家サーバー2台でOSがUbuntu16.04、monoが4.6.2、OpenSimulatorがJOG配布の0.9.0という状態でJOGグリッドに接続させていただいていました。

2台のうちの1台のサーバーのOSのバージョンアップ(Ubuntu18.04)をしましたら、バージョンアップしたサーバーがJOGに接続ができなくなりました。この時点でmonoを5.14.0.177に変更しました。この時も立ち上がらず途中でとまりました。

そこで、今回シノバーさんの対応策を行いましたら、無事JOGに接続ができるようになりました。

 

 


 

            更新前          更新後

OS:         Ubuntu16.04       Ubuntu18.04

mono          4.6.2         5.14.0.177

OpenSim      0.9.0-JOG配布版     0.9.0.1本家配布版

管理者         ど素人          ど素人


 

 

ちなみに、シェルスクリプトですが

冒頭の2行目と3行目は環境に応じて書き換える必要があるということだったので

私の環境に合わせて

SRC=/home/(ユーザー名)/53byakko090

DEST=/home/(ユーザー名)/53byakko20901

と書き換えて、shinobar_magic.shという名前にして保存しました。

 

ただ、その後どうやってそのシェルを実行するのかわからなかったので、

記述を丸ごとコピーして「端末」のコマンドラインにペーストしたら

なんとそのスクリプトを無事実行してくれました。

きっと記述したシェルをスクリプトとして起動する方法もあるのでしょうけど

その方法で何とかなりました。

 

その後で、

 ~$ cd 53byakko20901/bin

 ~53byakko20901/bin$ mono OpenSim.exe

でそれまで接続していたシムと同じ状態で無事OpenSimulatorがJOGに接続されました。

 

fuugetu flowerbird への返信

Re: おかげさまで無事接続できました! Re: 最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

- Xpyoda Janus の投稿

> と書き換えて、shinobar_magic.shという名前にして保存しました。
> ただ、その後どうやってそのシェルを実行するのかわからなかったので、
> 記述を丸ごとコピーして「端末」のコマンドラインにペーストしたら
> なんとそのスクリプトを無事実行してくれました。

shinobar_magic.sh のシェルスクリプトをコマンドとして実行させるには、次の2つの方法があります。

1. スクリプトファイルに「実行属性」をつけます。

    $ chmod +x shinobar_magic.sh        (ファイルに実行属性をつける)
    $ ./shinobar_magic.sh               (ファイルを実行。./ を頭につける)

2. シェルにスクリプトファイルを食わせる(実行属性はつけなくていい)。

    $ sh shinobar_magic.sh              (sh または bash にスクリプトファイル読み込ませて実行させる)

「$」は、bashの入力プロンプトですので入力しないでください (コマンド入力を待ってるよー、という印)。


以下、豆知識

通常、「chmod +x」で実行属性つけて実行できるのは、そのOS・CPUで実行できる実行可能バイナリーだけなのですが、ファイルの先頭が「#!」だと、OSが特別扱いして「#!」から後ろにあるファイルパス名を実行ファイルとそのコマンド引数として起動し、ファイルの2行目以降をその起動した実行ファイルに食わすという動作になります。shスクリプトの場合「#!/bin/sh  or  #!/bin/bash」。
この実行ファイルの事をインタプリタとか呼ぶ場合もありますけど、食わされたファイルを解釈する役目があるだけの
たんなる実行ファイルです。https://ja.wikipedia.org/wiki/シバン (Unix)
「#!」で検索してみるといろいろでてくると思います。

シェル(sh, csh, bash 等々、というかUNIXの標準的な作りのコマンドは)は、標準入力からコマンドを読み込んでそれを実行します。
「端末」からシェルをうごかしている場合は、キー入力が標準の入力元になります。
「端末」からbashなどをつかっている場合、標準入力・標準出力はキーボード・ディスプレイ・端末(tty)からの入出力になりますが、リダイレクトやパイプという機能を使うと、 入力元や出力先をファイルに変更できたり、他のプログラムの出力を自分の入力にしたり、自分の出力を他のプログラムの入力に切り替えるということができます。https://qiita.com/tag1216/items/7ce35b7c27d371165e56

これらの事を知っておくと、楽になれる場面が割とあります。

 

> ただ、その後どうやってそのシェルを実行するのかわからなかったので、
> 記述を丸ごとコピーして「端末」のコマンドラインにペーストしたら
> なんとそのスクリプトを無事実行してくれました。

この行為は、場合によっては、かなり危険な場合もあります。「rm -rf /」とかの文字列がまじってたり、Hackの為のバックドアを仕掛ける文字列がまざってたとしたら...。

Xpyoda Janus への返信

Re: おかげさまで無事接続できました! Re: 最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

- fuugetu flowerbird の投稿

 

XPyodaさん、シェルの起動方法を教えてくださってありがとうございました!

改めて別のリージョンで二つのうち1の方法で試したところできました。

そういえば、Linux環境でFirestormをインストールするときも

 ./install.sh

っていう魔法の呪文を使ってインストールしたことを思い出しました。

 

2のshコマンドだと実行属性を与えなくてよいのですね~ 

私の場合、こっちで覚えたほうが覚えやすいかもしれません。

 

ありがとうございました^^