Go to main content
マニュアルページ セク ション 1M: シ ステム管理コマン ド

印刷ビューの終了

更新: 2016年12月6日
 
 

ttymon(1M)

名前

ttymon - 端末ポートのポートモニター

形式

/usr/sbin/ttymon -g [-d device] [-h] [-t timeout] 
     [-l ttylabel] [-p prompt] [-m modules] [-T termtype]

説明

ttymon は STREAMS ベースの TTY ポートモニターです。その機能には、ポートの監視、ポートの端末モード、ボーレートおよび回線規約の設定、そしてポートに関連したサービスへのユーザーまたはアプリケーションの接続があります。ttymon の各インスタンスは、起動時に指定された 1 つのポートを監視します。ttymon のインスタンスが起動されると、ttymon は最初に回線制御手順 (指定されている場合)、および速度と端末の設定を初期化します。/etc/logindevperm 中のエントリに指定されているポートには、デバイスのオーナー、グループ、アクセス権が設定されます (logindevperm(4) 参照)。初期化に使用される値は、TTY 設定ファイルの適切なエントリから取り込まれます。このファイルは sttydefs(1M) コマンドによって管理されています。通常、ポート上のデフォルトの回線規約は、オートプッシュファシリティの autopush(1M) コマンドによって設定されます。

次に ttymon はプロンプトを書き込んでユーザーの入力を待ちます。ユーザーが BREAK キーを押して速度が適切でないことを知らせると、ttymon は次の速度を試行してプロンプトを再び書き込みます。有効な入力が受信されると、ttymonutmpx エントリ (utmpx(4) を参照) を作成し、ポートのログインサービスを実行します。有効な入力は、キャリッジリターンで終わり、少なくとも 1 つの復帰改行以外の文字が入った文字列からなります。

autobaud がポートで動作可能であれば、ttymonは自動的にポートのボーレートを判別しようとします。ユーザーがキャリッジリターンを入力してからでないと、ttymonはボーレートを認識してプロンプトをプリントできません。現在のところ、autobaud が判別できるボーレートは 110120024004800、および 9600 です。

SMF サービス記述

ttymon を起動するプライマリ smf(5) サービスは、svc:/system/console-login です。このサービスには、複数のサービスインスタンスが含まれる場合があります。インスタンスについては、以下でより詳しく説明します。次に示すように、このサービスは呼び出しを制御するためにプロパティーグループ ttymon 内の多くのプロパティーを提供します。

NAME                  TYPE               TTYMON OPTION
----------------------------------------------------------
device                astring            [-d device]
nohangup              boolean            [-h]
label                 astring            [-l label]
modules               astring            [-m module1,module2]
prompt                astring            [-p prompt]
timeout               count              [-t timeout]
terminal_type         astring            [-T termtype]

いずれかの値が空の文字列であるかゼロに設定された整数である場合、オプションは ttymon 呼び出しに渡されません。

svc:/system/console-login:default

デフォルトインスタンスは常に、システムハードウェアコンソールでのログインを提供する ttymon を表します。

システムコンソール設定の変更方法の例については、「使用例」を参照してください。

svc:/system/console-login:{vt2, vt3, vt4, vt5, vt6}

システムの仮想コンソールには、追加のサービスインスタンスが提供されています。 仮想コンソールが使用できない場合は、これらのサービスが自動的に無効化されます。 vtdaemon(1M) を参照してください。

svc:/system/console-login:{terma, termb}

便宜のために svc:/system/console-login:terma および svc:/system/console-login:termb が提供されており、追加ポート /dev/term/a および /dev/term/b にログインサービスを設定する際にユーザーが使用できます。これらのサービスはデフォルトで無効化されています。

追加インスタンスを作成する

ユーザーは追加デバイスに追加のサービスインスタンスを構成できます。これは、次の方法のいずれかで実現できます。

  • svccfg(1M) を使用して手動でサービスインスタンスを作成する。

  • サービスプロファイルにサービスを作成する (smf(5) を参照)。

  • 追加のサービスインスタンスにサービスマニフェストを作成する。

svccfg を使用して手動でサービスを構成する例については、「使用例」を参照してください。

SMF サービスのエラー

コンソールログインサービスのインスタンスが誤って構成された場合はほとんど、保守状態に遷移します。svcs –l を使用して (svcs(1) を参照)、サービスのログファイルの場所を確認し、追加情報がないかどうかログを調べます。

エラーが発生すると、サービスが無制限に再起動されることがあります。svcadm(1M) を使用してサービスを無効化してから、問題解決に役立つ追加のメッセージや情報がないかどうかサービスログを調べます。

セキュリティー

ttymonpam(3PAM)を使って、セッション管理を行います。PAM 構成ポリシーは、/etc/pam.conf または /etc/pam.d/ 内のサービス別のファイルに記述され、ttymon で使用するモジュールを指定します。ここに、UNIX セッション管理モジュールを使用する ttymon のエントリを含む、pam.conf ファイルの抜粋を示します:

ttymon session required /usr/lib/security/pam_unix_session.so.1

/etc/pam.d/ 内の同等の PAM 構成では、/etc/pam.d/ttymon 内に次のエントリが含まれます:

session required /usr/lib/security/pam_unix_session.so.1

ttymon サービスのエントリが /etc/pam.conf 内になく、かつ /etc/pam.d/ttymon ファイルが存在しない場合、/etc/pam.conf 内の「その他の」サービスのエントリが使用されます。/etc/pam.conf に「その他の」サービスのエントリが一切存在しない場合、/etc/pam.d/other 内のエントリが使用されます。

オプション

サポートしているオプションは、次のとおりです。

–g

歴史的経緯により、–g オプションは必須です。

–ddevice

devicettymon の接続先とすべきポートの完全パス名です。このオプションが指定されていなければ、ファイル記述子 0は TTY ポートに対する呼び出しプロセスによって設定される必要があります。

–h

-h フラグが指定されていないと、ttymon は、速度をデフォルト速度または指定速度に設定する前に、速度を 0 に設定することによって回線のハングアップを強制的に行います。

–lttylabel

ttylabelttydefs ファイルの速度および TTY 定義に対するリンクです。この定義によって、初期の実行速度、初期の TTY 設定の内容およびユーザーがBREAK キーを押して速度が適切でないことを指示する場合に、次に試行する速度が ttymon に通知されます。デフォルト速度は 9600 ボーです。

–mmodules

ポートを初期化すると、ttymon はポートのモジュールすべてをポップして、指定した順序で modules をプッシュします。modules はコンマで区切ったプッシュ可能なモジュールのリストです。通常、ポートのデフォルトのモジュールは、オートプッシュファシリティによって設定されます。

–pprompt

ユーザーがプロンプト文字列を指定するのを許可します。デフォルトのプロンプトは Login: です。

–ttimeout

プロンプトの送信後、timeout 秒内に何も入力がない場合には ttymon を終了します。

–Ttermtype

termtype に TERM環境変数を設定します。

–v

詳細なメッセージを有効化します。

使用例 1 システムコンソールの端末タイプを設定する

次の例では、システムコンソール ttymon 呼び出しのための端末タイプ (–T) オプションの値を設定します。

# svccfg -s svc:/system/console-login:default \
	    "setprop ttymon/terminal_type = xterm"
# svcadm refresh svc:/system/console-login:default
使用例 2 追加シリアルデバイスのサービスインスタンスを作成する

この例では、ユーザーが USB シリアルアダプタを使用して接続されている端末でログインサービスを提供するために、svc:/system/console-login サービスの追加インスタンスを構成します。USB シリアルポートが /dev/term/1 として存在し、ユーザーがこれに vt100 端末を接続する計画があると想定しています。 この場合、サービスインスタンスには term1 (またはその他の任意の名前) という名前を付け、次のように定義できます。

# svccfg -s svc:/system/console-login "add term1"
# SVC=svc:/system/console-login:term1
# svccfg -s $SVC "addpg ttymon application"
# svccfg -s $SVC "setprop ttymon/device = /dev/term/1"
# svccfg -s $SVC "setprop ttymon/terminal_type = vt100"
# svcadm refresh $SVC
# svcadm enable $SVC

環境変数

LC_* 変数 (LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、LC_MONETARY) (environ(5) 参照) のいずれも環境に設定されていなければ、それぞれ対応するロケールのカテゴリにおける ttymon の動作は、環境変数 LANG によって決定されます。LC_ALL が設定されていれば、その内容が LANG 変数やその他の LC_* 変数より優先されます。前述の変数が環境にまったく設定されていなければ、「C」ロケール (米国スタイル) が ttymon の動作を決定します。

LC_CTYPE

ttymon の文字の処理方法を決定します。LC_CTYPE に有効な値が設定されていると、ttymon は、そのロケールにあった文字を含むテキストやファイル名を表示および処理できます。ttymon は拡張 UNIX コード(EUC)も表示および処理できます。この場合、文字は 1 バイト幅、 2 バイト幅、3 バイト幅のいずれも使用できます。また、ttymon は 1、 2、またはそれ以上のカラム幅の EUC 文字も処理することができます。「C」ロケール においては、ISO 8859-1 の文字だけが有効です。

ファイル

/etc/logindevperm

コンソールデバイスのログインまたはログアウト時にデバイスの所有者、グループ、およびアクセス権を変更するときに、login(1) および ttymon で使用される情報が含まれます。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実

関連項目

svcs(1)ct(1C)cu(1C)autopush(1M)sttydefs(1M)svcadm(1M)svccfg(1M)uucico(1M)vtdaemon(1M)pam(3PAM)logindevperm(4)pam.conf(4)utmpx(4)attributes(5)environ(5)pam_authtok_check(5)pam_authtok_get(5)pam_authtok_store(5)pam_dhkeys(5)pam_passwd_auth(5)pam_unix_account(5)pam_unix_auth(5)pam_unix_session(5)smf(5)

Oracle Solaris 11.3 の管理の紹介

サービスアクセス機能 (SAF とSAC)

以前は、ttymon はサービスアクセス機能のコンポーネントであり、sac (サービスアクセスコントローラ) によって起動されていました。このリリースの Solaris では、この機能は削除され、SMF への関連部分の変換が行われました。

ポートの競合

ポートが複数の ttymon によって監視されている場合は、ttymon は入力を争うような方法でプロンプトメッセージを送信できます。

2 つの svc:/system/console-login サービスインスタンスが同じ基本デバイスを参照している可能性があります。たとえば、(ファームウェアの設定や自動検出のために) システムのハードウェアコンソールがシリアルポート A に接続されている場合は、svc:/system/console-login:default svc:/system/console-login:terma の両方のサービスが同じ基本ハードウェアデバイスを参照します。この状況を回避するために追加サービスインスタンスを定義または有効化する際は、注意しないと 2 つの ttymon が競合してしまいます。