web-dev-qa-db-ja.com

systemd-デフォルトのログインttyを変更する

私はDMなしでArchでxfceを実行しています。 xorg-xinitを使用してstartxを実行します。デフォルトでは、起動後、tty1にログインプロンプトが表示され、すべて問題ありません。

ただし、手動でCtrl + Alt + F6を押すことなく、tty6(またはその他)のログインプロンプトでドロップするようにデフォルトの動作を変更したいと思います。

さまざまなソース、Arch wiki、manページ、 http://0pointer.de/blog/projects/systemd-docs.html などを読むのに多くの時間を費やしました。

しかし、まだわかりません。

ファイル/etc/systemd/system/getty.target.wants/[email protected]および[email protected]を手動で追加および削除してみました。または、systemctlを使用してそれらを有効および無効にしました。

テストとして、/ usr/lib/systemd/system/getty @ .service DefaultInstance = tty1からDefaultInstance = tty7の最後の行、および上記すべての組み合わせも編集します。うまくいったら、/ etc/systemd/systemに作成したでしょう。

私はArchフォーラムで質問し、非常に一般的な返事をもらいました。ほとんどがコオロギのさえずりです。どういうわけか私が眉をひそめようとしているのは何ですか?

最終的に、/ etc/systemd/systemに、chvtを含むbash one linerを呼び出すサービスファイルを作成しただけです。これは私が欲しかったものを与えてくれますが、今私はtty1でクリアしないように設定した起動メッセージをスクロールすることができません。この解決策はまた、ハックの悪いアドのようです。

これを行う適切な方法は何でしょうか?

3
Dom

解決しました!

OK、これ以上返信がないため、再起動後にtty7でログインプロンプトが表示されるように、私が行った詳細を共有します。

1)〜/ binに1行のスクリプト「change.login.tty」を作成しました

2)/ etc/systemd/system /にsystemdサービスファイル「change.login.tty.service」を作成しました

3)「change.login.tty.service」を有効化

$ systemctl enable change.login.tty.service

4)/etc/systemd/logind.confを#NAutoVTs = 7および#ReserveVT = 6に編集しました

5)tty7でgettyを起動します(おそらく必要ありません)。

$ systemctl enable getty@tty7

6)再起動し、tty7のプロンプトにログインしてお楽しみください。

〜/ bin/change.login.tty

#!/bin/bash
# This changes the login tty #
chvt 7

/etc/systemd/system/change.login.tty.service

[Unit]
Description=Change login tty number.

[Service]
Type=idle
ExecStart=/home/[user name]/bin/change.login.tty

[Install]
WantedBy=multi-user.target

/etc/systemd/logind.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.

[Login]
#NAutoVTs=7
#ReserveVT=7
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#UserTasksMax=33%

エラーを投票したり指摘したりするのではなく、エラーを修正するか、投稿により簡単な解決策を説明してください。

それは私のために働いた、あなたの結果は異なる場合があります。

3
Dom

DefaultInstanceは、親ではないサービスのsystemdインスタンスを参照します。 Debian inittabを含む多くのLinuxディストリビューションでは、まだttyが生成されます。サービスファイルは、追跡するために多かれ少なかれ存在します。

通常、ディスプレイマネージャーは開始ttyを決定し、tty7以上で1つを起動してから、chvtのようにそれに切り替えます。 1つのxinitを使用していないため、新しいttyを生成しません。現在のTTYでのみXを開きます。 Xは通常、tty6ではなくtty7を使用していることに注意してください。 xinitの使用方法については、Arch Linux wikiの https://wiki.archlinux.org/index.php/Xinit を参照してください。

だからあなたの選択肢は:

  • ウィンドウマネージャーを使用する
  • マルチシートを使用
  • 自動ログイン

これを別の言い方をすると、セッション認証を処理するのはウィンドウマネージャーです。それがなければ、この目的のためにログインしたttyに依存します。したがって、別のものに切り替えるには、ログに記録する必要があります。その場合は、それに切り替えてとにかくログインする必要があります(または自動ログインを使用します)。それが、ディスプレイマネージャーがログイン資格情報を要求する理由です。

適切な設定がなされていれば、ウィンドウマネージャーの動作を再認証しない限り、startxはttyに関連付けられているため、自動ログインしない限りttyを切り替えることはできません。

3
jdwolf