GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/TCP-Emacs-server.html ・ emacs-doc.conao3.com

41.1 TCP Emacsサーバー

Emacsサーバーは通常、ローカルのUnixドメインソケットで接続を待ち受けます。MS-Windowsなどの一部のオペレーティングシステムではローカルソケットがサポートされていないため、その場合は代わりにTCPソケットを使用します。ローカルソケットがサポートされている場合でも、例えばリモートマシンからEmacsサーバーに接続する必要がある場合など、サーバーにTCPソケットで接続を待ち受けさせることが有用なケースがあります。server-use-tcp に nil 以外を設定することで、EmacsにローカルソケットではなくTCPソケットで接続を待ち受けさせることができます。OSがローカルソケットをサポートしていない場合、これがデフォルトとなります。

EmacsサーバーがTCPを使用するように設定されている場合、デフォルトではlocalhostインターフェース上のランダムなポートで待ち受けます。これは、変数server-hostおよびserver-portを使用して、別のインターフェースや固定ポートに変更できます。

TCPソケットはファイルシステムの権限の影響を受けません。どのユーザーがTCPソケット経由でEmacsサーバーと通信できるかについて一定の制御を維持するため、emacsclientプログラムは認証キーをサーバーに送信する必要があります。このキーは通常、Emacsサーバーによってランダムに生成されます。これが推奨される動作方式です。

必要に応じて、server-auth-key 変数を設定することで、認可キーを静的な値に指定できます。キーは、スペースを除く64文字のASCII印字可能文字で構成されている必要があります(つまり、‘!’から‘~’まで、または10進コード33から126までの文字です)。M-x server-generate-key を使用すると、ランダムなキーを取得できます。

TCP Emacsサーバーを起動すると、Emacsはemacsclientがサーバーに接続する際に使用するTCP情報を含むサーバーファイルを作成します。変数server-auth-dirはサーバーファイルが格納されるデフォルトのディレクトリを指定し、デフォルトでは~/.emacs.d/server/となります。ファイル権限を持つローカルソケットが存在しない場合、このディレクトリの権限によって、どのユーザーがemacsclientプロセスでEmacsサーバーと通信できるかが決まります。server-nameが絶対ファイル名である場合、サーバーファイルはそのファイル名で指定された場所に作成されます。

emacsclient に特定のサーバーファイルを用いて TCP 経由でサーバーに接続させるには、‘-f’ または ‘--server-file’ オプションを使用するか、環境変数 EMACS_SERVER_FILE を設定してください(emacsclient オプション を参照)。server-auth-dir に非標準的な値が設定されている場合、または server-name に絶対ファイル名が設定されている場合は、emacsclient にサーバーファイルへの絶対ファイル名を指定する必要があります。これは、デフォルトの server-auth-dir が相対ファイル名の解決用ディレクトリとして使用されるよう emacsclient にハードコードされているためです。