(2016-09-01)

Raspbian jessie (Debianも同じ) の仮想コンソール agetty (以降、agetty)が、デフォルトでは6個起動する。
ほっといてもそんなにメモリ食うわけでもないみたいだが、減らしたい気分になったのでやってみた。
ネットの海が広すぎて、いまいちよく調べられなかったので、自分で適当にやってみた結果を載せておく(完全無保証)。
jessieなのでsystemctl(systemd)起点に操作することになる。

OSのバージョン等はこれ。

$ uname -a
Linux rasp00 4.4.13+ #894 Mon Jun 13 12:43:26 BST 2016 armv6l GNU/Linux

動いている agetty を確認

サービスの一覧を見る(systemctl)

agetty は jessieでは systemd のサービスとして起動している。
サービスの一覧を見てみる。

# systemctl list-units -t service | grep getty
getty-static.service               loaded active exited  getty on tty2-tty6 if dbus and logind are not available
getty@tty1.service                 loaded active running Getty on tty1
getty@tty2.service                 loaded active running Getty on tty2
getty@tty3.service                 loaded active running Getty on tty3
getty@tty4.service                 loaded active running Getty on tty4
getty@tty5.service                 loaded active running Getty on tty5
getty@tty6.service                 loaded active running Getty on tty6
serial-getty@ttyAMA0.service       loaded active running Serial Getty on ttyAMA0

一行目の getty-static.service は、次の行以降の getty@tty1~6を起動する親分のようだ。
最後の行のserial-gettyはシリアルポート用なので今回は対象外。

プロセスの一覧を見る(ps)

常套手段。

# ps -ef | grep agetty
root     14030     1  0 15:21 ttyAMA0  00:00:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyAMA0 vt102
root     14031     1  0 15:21 tty3     00:00:00 /sbin/agetty --noclear tty3 linux
root     14032     1  0 15:21 tty1     00:00:00 /sbin/agetty --noclear tty1 linux
root     14033     1  0 15:21 tty5     00:00:00 /sbin/agetty --noclear tty5 linux
root     14035     1  0 15:21 tty4     00:00:00 /sbin/agetty --noclear tty4 linux
root     14036     1  0 15:21 tty2     00:00:00 /sbin/agetty --noclear tty2 linux
root     14278     1  0 15:56 tty6     00:00:00 /sbin/agetty --noclear tty6 linux
root     14313 13906  0 16:00 pts/2    00:00:00 grep agetty

先頭と末尾の行は除外すべし。

その場で一時的に減らす(あるいは増やす)

該当ttyのサービスを停止、あるいは起動すればOK。
(昔の initd の時と同じで、単に該当プロセスを kill してもだめです)。 一時的に減らす場合。

# systemctl stop getty\@tty6.service

一時的に増やす場合。

# systemctl start getty\@tty6.service

デフォルトではtty1~6の6つが起動しているが、7個目を起動したい、といったこともできる。

# systemctl start getty\@tty7.service

一つ飛ばして、いきなり tty8 とかも起動できたりする。
最大で何個まで起動できるかは・・・知りません。

恒久的に減らす

とりあえず手順。

# cp /lib/systemd/system/getty-static.service /etc/systemd/system/
# vi /etc/systemd/system/getty-static.service
(編集・保存・終了)
# diff /lib/systemd/system/getty-static.service /etc/systemd/system/getty-static.service
8c8
< ExecStart=/bin/systemctl --no-block start getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service
---
> ExecStart=/bin/systemctl --no-block start getty@tty2.service getty@tty3.service getty@tty4.service

どうやらOS起動時のtty1~6のサービス起動は、上記の定義ファイルでやっているみたいなので、/etc/systemd/system/へコピーしたのち、いらない部分をバッサリ削ってやる、といいみたい。
変更が終わったら、OS再起動して確認してみてちょんまげ。

ちなみに、OS再起動せずに上記を反映させることはできない模様。
諦めて、tty1~6を個別に停止させるしかないようだ。
たとえばこんな具合。

# systemctl stop getty\@tty[56].service

以上であります。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-02-15 (火) 10:06:49