x2goserverを自宅のubuntu18.04に入れ、x2goclientをmacOSに入れて、外出先からubuntuにアクセスしています。
この前変なことをしてしまい、接続できなくなった時の復旧方法をメモしておきます。
復元できなくなった
この前やった変なこと(これがダメな操作なのかよくわからないが)
- x2goでubuntuへ接続(フルスクリーンの設定にしていた)
- フルスクリーンじゃなくてウィンドウにしたいと思い、一旦サスペンド
- 設定のところでフルスクリーンからカスタムに変更
- 再度接続しようとしたら以下のエラーが発生し、接続できなくなった
Connection failed. it is taking too long to suspend the session-to-be-resumed; it is possible that the session is in a damaged state
確かに、サスペンドしている状態で設定を変えるとおかしくなるかもしれないが、virtualboxなんかだと、一旦シャットダウンしないと設定が反映されないだけでエラーにはならなかったような気がします。そして設定を戻して再接続をしても変わらないし、x2goclientを再起動しても、セッションを削除してもう一度作ってみても変わりません。x2goserverの方も再起動しても意味なし。x2goserverの設定ファイル~/.x2go/
を削除しても、クライアントの方の~/.x2go/
と~/.x2goclient/
を削除しても意味がありません。もうお手上げ。
裏技発見
そしてなんか裏技を発見しました。preferenceのところで、以下のスクショのようにsession typeを一旦KDEにします(ubuntu18.04はGNOMEなので、本当はGNOMEにしておかないとエラーになります)。
これで設定を保存して接続を試みると、サスペンドされているセッションのリストが表示され、なぜか全て消したはずのGNOMEセッションがまだ残っていることがわかります(下図)。GNOMEで接続しても同じようにセッションリストが表示されてくれれば良いだけなのですが、表示されないようです。
上に書いたように、.x2go…系のフォルダを削除すればサスペンドしているセッション等のデータは全部消えるだろうと思っていたらどこかに残っているようです。ここでTerminateをクリックすればようやくこのセッションを削除できます。で、もう一度preferenceでsession typeをGNOMEに戻して接続し直せばちゃんと繋がるようになります。
今回の場合に限らず他のエラーが出たときもこれで解決しました。というか一回エラーが出てしまうと、この方法でセッションを削除する以外に今の所解決法がわかりません。