CentOS7のVNCサーバーが動かない
この記事は色々と間違っています。反省として残してあります。参考にしないでね。
みなさんこんばんわ。
さくら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.
こちらを参考に、一度プロセスを切って、
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