試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

mltermのデーモンモードについて

mltermは、デーモンモードという動作モードを持ち、mlclientというクライアントを実行させると、mltermを普通に起動したかのように見えるが、内部的には、デーモンとして起動された(1つの)mltermプロセスの中で新しく疑似端末を作っている。

  1. 2種類の動作モード(blend,genuine)の違い
  2. デーモンモードを使用するメリット
  3. 注意点
  4. 使用方法
  5. クライアントの状態一覧を見る

2種類の動作モード(blend,genuine)の違い

  • blendモードでは、全ウィンドウが閉じられた時点でデーモンは終了する。
  • genuineモードでは、全ウィンドウが閉じられてもデーモンは終了しない。

デーモンモードを使用するメリット

  • mlclientで新規ウィンドウを開くと、mltermを普通に起動させるよりも短時間で、素早く開く
  • ウィンドウを複数開く場合、mltermを複数起動させるのと比べて使用メモリが節約できる
  • genuineモードで使用すると、ウィンドウを全て閉じても中のシェルの状態は保持され*1、後にmlclientで接続したときに同じ状態で作業再開ができる。GNU screenでも同様のことが可能。GNU screenの方が好みという人もいるので、使い方は人それぞれ。

注意点

  • [ホームディレクトリ]/.mlterm/以下の設定はデーモン起動時にのみ読み込まれるため、設定の変更を反映したい場合にはデーモンを再起動*2する必要がある。
  • mlclientは、mltermコマンドラインオプションのほとんどが使用できるが、一部使用できないものもある。その一覧はmlclientのマニュアルページで確認できる。
  • セキュリティについてほとんど考慮していないとのことなので、外部ネットワークにつながった環境では使用しないほうがよさそう。

(2014/10/10)manページのリンク先を修正

使用方法

デーモン動作時はmlclientを起動すればよいが、動作していない(mlclientが失敗する)場合にはデーモンを起動させるようにする。以下の内容のシェルスクリプトを作成して、メニュー項目やランチャに登録しておくと便利。
[任意]ファイル名: ~/bin/mlterm.sh

#! /bin/bash
mlclient "$@" 2>/dev/null || mlterm -j genuine "$@" # genuineモードで使用 
#mlclient "$@" 2>/dev/null || mlterm -j blend "$@"  # blendモードで使用する場合

クライアントの状態一覧を見る

$ mlclient -P

と実行することで、クライアントの端末の状態が一覧できる。

*1:Xを再起動したりする場合は事前に全てのウィンドウを閉じ、Xサーバとの接続を切っておく

*2:デーモンを終了するにはmlclient --killもしくはkillall mlterm(デーモン以外のmltermも終了してしまうので注意)など