[Mac] ターミナルで TeamViewer を強制終了する

私はサーバー目的で使っている Mac が1台あるが、その Mac にはモニターを接続していない。その代わり、その Mac を操作するには TeamViewer を使って接続している。TeamViewer というのはリモートデスクトップアプリで、Mac からはもちろん、iOS 等からもホストマシンへ接続できる。

TeamViewer – リモートサポート、リモートアクセス、サービスデスク、オンラインコラボレーション、ミーティング
https://www.teamviewer.com/ja/

TeamViewer は非常に便利なアプリケーションなんだけど、唯一の欠点は Mac アプリが時々フリーズすることだ。macOS Catalina をホストマシンとして TeamViewer を動かしていると、時々フリーズしてクライアントマシンから接続できなくなるのだ。

そういう場合、仕方なくモニターとマウスを接続して TeamViewer を再起動していた。この動作が面倒だった。

そこで解決策を考えついた。SSH 接続してアプリを再起動するのである。

(1)ホストマシンの Mac で「リンゴマーク>System Preferences>Sharing>Remote Login」にチェックを入れる。デフォルトで Only these users で Administrators が表示されていると思う。すなわち、ホストマシンのログインアカウントとそのパスワードでリモートログイン(SSH 接続)できるというわけだ。

(2)ゲストマシンのターミナルで SSH 接続をする。

$ ssh [ホストマシンのアカウント名]@[ホストマシン名.local あるいは IP アドレス]

パスワードを聞かれるのでホストマシンのアカウントのパスワードを入力する。これで SSH 接続に成功するはずだ。

(3)以下のコマンドで TeamViewer の PID を特定する。

$ ps aux | grep TeamViewer

このうち、末尾が以下の PID をメモる。

/Applications/TeamViewer.app/Contents/MacOS/TeamViewer -RunAsAgent YES

(4)以下のコマンドで強制終了(force quit)する。

$ kill -9 [PID]

TeamViwer は勝手に再起動するので、ゲストマシンから TeamViwer で接続できるようになるはずだ。

参考:
【ps・kill】実行中のプロセス表示と強制終了 – Qiita
https://qiita.com/shuntaro_tamura/items/4016868bda604baeac3c

macos – Does Mac terminal killall command quit or force quit? – Stack Overflow
https://stackoverflow.com/questions/49924168/does-mac-terminal-killall-command-quit-or-force-quit