「Getty」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→インストール: 古い記事を削除) |
Kusanaginoturugi (トーク | 投稿記録) (英語版を元に章立てを修正) |
||
18行目: | 18行目: | ||
* {{App|mgetty|Unix でモデムを使うのに適した汎用プログラム。|http://mgetty.greenie.net/|{{AUR|mgetty}}}} |
* {{App|mgetty|Unix でモデムを使うのに適した汎用プログラム。|http://mgetty.greenie.net/|{{AUR|mgetty}}}} |
||
+ | == ヒントとテクニック == |
||
− | == 仮想端末の追加 == |
||
+ | === Staircase effect === |
||
− | {{ic|/etc/systemd/logind.conf}} ファイルを開いて {{ic|1=NAutoVTs=6}} オプションを使って好きな数の仮想端末を起動できます。 |
||
+ | |||
+ | ''agetty'' modifies the TTY settings while waiting for a login so that the newlines are not translated to CR-LFs. This tends to cause a "staircase effect" for messages printed to the console. |
||
+ | |||
+ | It is entirely harmless, but in the event it persists once logged, you can fix this behavior with: |
||
+ | |||
+ | $ stty onlcr |
||
+ | |||
+ | See this [https://bbs.archlinux.org/viewtopic.php?id=264094 forums discussion] on the subject. |
||
+ | |||
+ | === 仮想コンソールの追加 === |
||
+ | |||
+ | {{ic|/etc/systemd/logind.conf}} ファイルを開いて {{ic|1=NAutoVTs=6}} オプションを使って好きな数の仮想コンソールを起動できます。 |
||
一時的に起動したい場合、以下を入力することで適当な TTY で getty サービスが起動します: |
一時的に起動したい場合、以下を入力することで適当な TTY で getty サービスが起動します: |
||
26行目: | 38行目: | ||
$ systemctl start getty@ttyN.service |
$ systemctl start getty@ttyN.service |
||
− | == 仮想 |
+ | === 仮想コンソールに自動ログイン === |
''agetty'' に渡されるデフォルトパラメータを上書きする systemd の[[Systemd#ユニットファイルの編集|ドロップインファイル]]を使って設定を行います。 |
''agetty'' に渡されるデフォルトパラメータを上書きする systemd の[[Systemd#ユニットファイルの編集|ドロップインファイル]]を使って設定を行います。 |
||
32行目: | 44行目: | ||
設定は仮想コンソールとシリアルコンソールで異なります。ほとんどの場合、設定するのは仮想コンソールの自動ログインでしょう。デバイス名は {{ic|tty''N''}} で、{{ic|''N''}} が数字です。シリアルコンソールのデバイス名は {{ic|ttyS''N''}} のようになり、{{ic|''N''}} は同じく数字になります。 |
設定は仮想コンソールとシリアルコンソールで異なります。ほとんどの場合、設定するのは仮想コンソールの自動ログインでしょう。デバイス名は {{ic|tty''N''}} で、{{ic|''N''}} が数字です。シリアルコンソールのデバイス名は {{ic|ttyS''N''}} のようになり、{{ic|''N''}} は同じく数字になります。 |
||
− | === 仮想コンソール === |
+ | ==== 仮想コンソール ==== |
手動で以下のドロップインファイルを作成して[[systemd#ユニットファイルの編集|ユニットファイルを編集]]するか、{{ic|systemctl edit getty@tty1}} を実行して以下の内容を記述してください: |
手動で以下のドロップインファイルを作成して[[systemd#ユニットファイルの編集|ユニットファイルを編集]]するか、{{ic|systemctl edit getty@tty1}} を実行して以下の内容を記述してください: |
||
46行目: | 58行目: | ||
''tty1'' 以外の ''tty'' を使いたい時は [[Systemd FAQ#デフォルトで動作する getty の数を修正するにはどうすればいいですか?|Systemd FAQ]] を見て下さい。 |
''tty1'' 以外の ''tty'' を使いたい時は [[Systemd FAQ#デフォルトで動作する getty の数を修正するにはどうすればいいですか?|Systemd FAQ]] を見て下さい。 |
||
− | === シリアルコンソール === |
+ | ==== シリアルコンソール ==== |
以下のファイル (とディレクトリ) を作成してください: |
以下のファイル (とディレクトリ) を作成してください: |
||
56行目: | 68行目: | ||
}} |
}} |
||
− | === Nspawn コンソール === |
+ | ==== Nspawn コンソール ==== |
[[systemd-nspawn]] コンテナに自動ログインするには、''console-getty'' サービスを上書きしてください: |
[[systemd-nspawn]] コンテナに自動ログインするには、''console-getty'' サービスを上書きしてください: |
||
66行目: | 78行目: | ||
}} |
}} |
||
+ | === Prompt only the password for a default user in virtual console login === |
||
− | == tty1 にブートメッセージを残す == |
||
+ | |||
+ | Getty can be used to login from a virtual console with a default user, typing the password but without needing to insert the username. For instance, to prompt the password for {{ic|''username''}} on {{ic|tty1}}: |
||
+ | |||
+ | {{hc|/etc/systemd/system/getty@tty1.service.d/skip-username.conf|2= |
||
+ | [Service] |
||
+ | ExecStart= |
||
+ | ExecStart=-/sbin/agetty -o '-p -- ''username''<nowiki/>' --noclear --skip-login - $TERM |
||
+ | }} |
||
+ | |||
+ | and then [[enable]] {{ic|getty@tty1}}. |
||
+ | |||
+ | === tty1 にブートメッセージを残す === |
||
デフォルトで、Arch では {{ic|getty@tty1}} サービスが有効になっています。サービスファイルは既に {{ic|--noclear}} を使うようになっているので、agetty が画面をクリアすることはありません。しかしながら [[systemd]] が起動する前に画面をクリアしてしまいます。この挙動を無効にするには、ドロップインディレクトリ {{ic|/etc/systemd/system/getty@tty1.service.d/}} を作成して、その中に {{ic|noclear.conf}} ファイルを作ってください: |
デフォルトで、Arch では {{ic|getty@tty1}} サービスが有効になっています。サービスファイルは既に {{ic|--noclear}} を使うようになっているので、agetty が画面をクリアすることはありません。しかしながら [[systemd]] が起動する前に画面をクリアしてしまいます。この挙動を無効にするには、ドロップインディレクトリ {{ic|/etc/systemd/system/getty@tty1.service.d/}} を作成して、その中に {{ic|noclear.conf}} ファイルを作ってください: |
||
79行目: | 103行目: | ||
おそらく、画面にブートメッセージが溢れてしまうほど表示されますが、Shift+PgUp/PgDow でスクロールできます。スクロールしても表示されないほど多くのブートメッセージが出力される場合、[[スクロールバックバッファ]]のサイズを増やしてみて下さい。 |
おそらく、画面にブートメッセージが溢れてしまうほど表示されますが、Shift+PgUp/PgDow でスクロールできます。スクロールしても表示されないほど多くのブートメッセージが出力される場合、[[スクロールバックバッファ]]のサイズを増やしてみて下さい。 |
||
− | |||
− | === /etc/issue のクリアを無効化 === |
||
− | |||
− | {{ic|/etc/issue}} に "clear TTY" エスケープシーケンスがある場合、削除してください。 |
||
− | |||
− | # sed -i $'s/\e\[H//; s/\e\[2J//' /etc/issue |
||
==参照== |
==参照== |
||
* [[Systemd#起動時のデフォルトターゲットを変更する]] |
* [[Systemd#起動時のデフォルトターゲットを変更する]] |
||
+ | * [https://www.linusakesson.net/programming/tty/ The TTY demystified] |
||
+ | * [[Wikipedia:tty (unix)]] |
2023年1月11日 (水) 14:44時点における版
関連記事
getty はターミナルのラインと接続されたターミナルを管理するプログラムの総称です。getty の目的は権限のないアクセスからシステムを保護することにあります。通常、getty のプロセスは systemd によって起動され、ターミナルのラインを管理します。
目次
インストール
Arch Linux におけるデフォルトの getty プログラムは agetty
であり、util-linux パッケージの一部です。
代替手段は次の通りです。
- mingetty — 自動ログインができる最小主義の getty。
- mgetty — Unix でモデムを使うのに適した汎用プログラム。
ヒントとテクニック
Staircase effect
agetty modifies the TTY settings while waiting for a login so that the newlines are not translated to CR-LFs. This tends to cause a "staircase effect" for messages printed to the console.
It is entirely harmless, but in the event it persists once logged, you can fix this behavior with:
$ stty onlcr
See this forums discussion on the subject.
仮想コンソールの追加
/etc/systemd/logind.conf
ファイルを開いて NAutoVTs=6
オプションを使って好きな数の仮想コンソールを起動できます。
一時的に起動したい場合、以下を入力することで適当な TTY で getty サービスが起動します:
$ systemctl start getty@ttyN.service
仮想コンソールに自動ログイン
agetty に渡されるデフォルトパラメータを上書きする systemd のドロップインファイルを使って設定を行います。
設定は仮想コンソールとシリアルコンソールで異なります。ほとんどの場合、設定するのは仮想コンソールの自動ログインでしょう。デバイス名は ttyN
で、N
が数字です。シリアルコンソールのデバイス名は ttySN
のようになり、N
は同じく数字になります。
仮想コンソール
手動で以下のドロップインファイルを作成してユニットファイルを編集するか、systemctl edit getty@tty1
を実行して以下の内容を記述してください:
/etc/systemd/system/getty@tty1.service.d/override.conf
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
tty1 以外の tty を使いたい時は Systemd FAQ を見て下さい。
シリアルコンソール
以下のファイル (とディレクトリ) を作成してください:
/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username -s %I 115200,38400,9600 vt102
Nspawn コンソール
systemd-nspawn コンテナに自動ログインするには、console-getty サービスを上書きしてください:
/etc/systemd/system/console-getty.service.d/override.conf
[Service] ExecStart= ExecStart=-/sbin/agetty --noclear --autologin username --keep-baud console 115200,38400,9600 $TERM
Prompt only the password for a default user in virtual console login
Getty can be used to login from a virtual console with a default user, typing the password but without needing to insert the username. For instance, to prompt the password for username
on tty1
:
/etc/systemd/system/getty@tty1.service.d/skip-username.conf
[Service] ExecStart= ExecStart=-/sbin/agetty -o '-p -- username' --noclear --skip-login - $TERM
and then enable getty@tty1
.
tty1 にブートメッセージを残す
デフォルトで、Arch では getty@tty1
サービスが有効になっています。サービスファイルは既に --noclear
を使うようになっているので、agetty が画面をクリアすることはありません。しかしながら systemd が起動する前に画面をクリアしてしまいます。この挙動を無効にするには、ドロップインディレクトリ /etc/systemd/system/getty@tty1.service.d/
を作成して、その中に noclear.conf
ファイルを作ってください:
/etc/systemd/system/getty@tty1.service.d/noclear.conf
[Service] TTYVTDisallocate=no
上記の設定で TTY1 の agetty の TTYVTDisallocate
だけが上書きされます。グローバルなサービスファイル /usr/lib/systemd/system/getty@.service
に手は加えられません。これは systemd のユニットファイルを編集するときに推奨される方法です。
KMS が後から起動すると最初のブートメッセージがクリアされてしまうことがあります。このような場合は、KMS を先に起動するようにしてください。
おそらく、画面にブートメッセージが溢れてしまうほど表示されますが、Shift+PgUp/PgDow でスクロールできます。スクロールしても表示されないほど多くのブートメッセージが出力される場合、スクロールバックバッファのサイズを増やしてみて下さい。