前回の記事で、LinuxのサーバにGUI接続する設定を書きましたが、いざ接続してみると画面が真っ黒のままデスクトップが表示されない事象が発生しました。
色々調べてみると、ローカルログインしているユーザがいると出来ない、既に開いているGnomeのセッションを閉じると良いなどいくつか原因が見つかったので、wコマンドでログインしているユーザを確認して強制ログアウトをしてみたり、Gnomeのセッションを落としたりしたのですが状況は変わらず…
行き詰まってSELinuxの設定を変えてしまって再起動が出来なくなり、一人でDCに行く羽目になったりもしましたが(これもまた別途記事にします。笑)
ついに原因が分かりました![]()
原因は、今回scriptコマンドでログイン時にログを自動的に取得するように設定していたのですが、ログオフしたときに上手くプロセスが落ちていなかったのか、そのプロセスが残っていたためにログインしていると認識され、前述の事象が起きてしまっているようでした…!
このscriptコマンドの厄介なところが、exitコマンドを入力しない限り
suしてrootユーザに切り替えても、そのままログインユーザのログも取得し続けてしまうんですよね。。
ログインユーザにはこの設定を入れなければ良かったのかもしれない(今更)
とりあえずこちらのサイトを参考に、
wコマンドでログインしているユーザを確認⇒
ログを取得しているプロセスのPIDをkillコマンドで落とし、
再度リモートデスクトップを試してみたところ、無事にデスクトップが表示されようになりました!!!(大号泣)
つまりTeratermは起動させずに、RDPだけで接続すればスムーズにいけるのか…?と思いましたが、あくまで「ローカルログインしているユーザがいる」と失敗するようで、ssh接続はカウントされないみたいなのでTeratermで接続している状態でもRDP接続は出来ました。
また、「scriptコマンドでログイン時にログを自動的に取得するように設定」をしているのが原因なのかと思いましたが、この設定が入ったままでもRDP接続は出来たので、あくまで前にログインしたときのプロセスが残ってしまっていたのが原因という感じでした。
ムズカシイ…
個人的にエンジニア人生で一番詰まった問題でした。。![]()