Blank?=False

ゆるゆる仕事したいフリーランスエンジニアの記事

CentOS7のVNCサーバーが動かない

f:id:stonebeach-dakar:20160711203615p:plain

この記事は色々と間違っています。反省として残してあります。参考にしないでね。

みなさんこんばんわ。

さくらVPSサーバーに入れているCentOS7のvncサーバーが突然動かなくなりました。

使っているのはtigervnceなのですが、VNCサーバーを起動しようとservice tigervnc startとコマンドを打つと、

$ service tigervnc start
Redirecting to /bin/systemctl start  tigervnc.service
Failed to start tigervnc.service: Unit tigervnc.service failed to load: No such file or directory.

と、怒られてしまいます。

エラーメッセージを読む

エラーメッセージはNo such file or directory.とあるのでVNC関係のディレクトリ・ファイルが見つからないようです。
service tigervnc start/bin/systemctl start tigervnc.serviceにリダイレクトされるようなので、このディレクトリ・ファイルが存在するか確認します。

$ls -la /bin/systemctl
/bin/sytemctl

ハイ、アルミタイデスネ
試しに直接/bin/systemctl start tigervnc.serviceを打ってみます。

$/bin/systemctl start tigervnc.service
Failed to start tigervnc.service: Unit tigervnc.service failed to load: No such file or directory.


デスヨネー
PATHが通ってないとか?と思いPATHを確認。
PATHについては以下の記事を御覧くださいな。

stonebeach-dakar.hatenablog.com

 echo $PATH
/home/sueda/.rbenv/shims:/home/foo/.rbenv/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/foo/.local/bin:/home/foo/bin

通ってますねぇ。

再インストールしてみます。

$ sudo yum -y reinstall tigervnc-server
$ service tigervnc start
Redirecting to /bin/systemctl start  tigervnc.service
Failed to start tigervnc.service: Unit tigervnc.service failed to load: No such file or directory.


はいダメー!撤収!

コレは本格的に腰を据えないといけなさそうです。

え?サービスが動いてないだけ?

そもそもvncserverが動いているのか不安になったので、 サービスの一覧のステータスを表示するコマンドservice --status-allを打ってみると、

$service --status-all
netconsole module not loaded
Configured devices:
lo eth0 eth1 eth2
Currently active devices:
lo eth0 eth1 eth2 virbr0

うわぁ。うごいてねぇ。

何やってたんだ俺はと落ち込みつつ、vncサーバーを再起動させてみます。

$ systemctl daemon-reload
$ systemctl enable vncserver@:1
$ systemctl restart vncserver@:1

さぁコレで解決‥とおもいきや、こんなエラーが出て動かせないよ、と。

$restart vncserver@:1
Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.


こちらを参考に、一度プロセスを切って、

orebibou.com

tmp内のソケットファイルを削除する。

$sudo rm /tmp/.X11-unix/X1

そして再度、お祈りしながらvncサーバーを再起動する。

$ systemctl daemon-reload
$ systemctl enable vncserver@:1
$ systemctl restart vncserver@:1


....
なんとも言えぬ時間が過ぎた後、無事vncサービスが再起動しました。

追記

この記事は色々と間違っていました。

まず、以下のコマンド。

$ systemctl daemon-reload
$ systemctl enable vncserver@:1
$ systemctl restart vncserver@:1

これは、再起動ではなく自動起動の有効化です。
以前、このコマンドをつかって再起動時に自動的に起動するようにしていました。

なので、この問題、正しくはVNCサーバーが自動起動しなくなったなのです。

解決方法としてはやはりtmp/.X11-unix/X<vncのウィンドウ番号>のソケットファイルを削除して、自動起動を改めて有効化すれば動くようになります。

Linuxのサービス、デーモン関係が全くわかっていないのが有り有りと出ていますorz