この質問が私を狂わせる!
私はFreeBSDで "/etc/ttys"を使ってgettyが実行されたときに実行されるコマンドを設定します。
私の設定ファイルの関連行は次のとおりです/etc/ttys
。
ttyv8 "/usr/local/bin/startx" xterm on secure
私の問題は、起動時に現在のコンソールがttyv8に切り替えられ(予想どおりに機能している)VirtualBoxウィンドウのサイズが変更されることです(これは通常、Xサーバーがグラフィック出力を制御していることを示します)。ちなみに、Xサーバーはすぐにシャットダウンされます。。 FreeBSD は 5 回再試行して 30 秒を待ってから 5 回再試行して 30 秒を待つように続きます。これが私を狂わせている!
しかし、startx
テキストコンソールにログインしてそこから実行した後は、問題なく完璧に動作しました。私はそうしませんでしたが、デフォルトの~/.xinitrc
xinitファイルを修正しました/usr/local/etc/X11/xinit
。
すべてをデバッグしようとすると、ttyコマンドにパイプを追加します。
ttyv8 "/usr/local/bin/startx > /tmp/startx.log" xterm on secure
startx.logが存在しません。まったく動作しません。ただし、標準のXorg.0.logは、gettyがxサーバーを起動しようとするたびに更新されます。 Xorg.0.logはまったく何も言いません。ドライバなどをロードした後は正常に終了します。私のxinitrcがまったく読まないようです。
私はログインマネージャを使用したくなく、自動ログインメカニズムも必要ありません。
よろしくお願いします。
答え1
ttyv8 "/usr/local/bin/startx" xterm セキュリティ
閉じたが間違っていた。
このマニュアルには、ttys
これを行う正確な方法の例が記載されています。window=
設定を使用して物理Xサーバーを指定し、レコードの2番目のフィールドで実行する初期Xクライアントを指定する必要があります。
#端末エミュレーション/ウィンドウシステム ttyv0 "/usr/local/bin/xterm -display :0" xterm on window="/usr/local/bin/X :0"
ttys
個人的には、次の3つの理由でこのメカニズムを使用しないことをお勧めします。
- 発見したように、再起動の動作は悪いです。実際には、Xクライアントとサーバーの環境変数の設定やサービスの有効化/無効化などの操作を非常に簡単に実行できる適切なサービスマネージャと比較して、構成可能性はほとんどありません。
- デスクトップマネージャを混在させた後は、実際に行くことはできません。これFreeBSDマニュアル各Mewburnスクリプトを介して
rc
さまざまなデスクトップマネージャを実行し、rc.conf
それを.TrueOSを介してOpenRCスクリプトから呼び出されるPCDMに置き換える方法を示します。どちらもttys
データベースエントリとは関係ありません。 - これはnoshサービス管理で行われる方法ではなく、PCDMおよびさまざまなデスクトップ管理者のためのサービスバンドルがあり、サービスバンドルはこれらのサービスバンドルの一般的な方法で通常のXサーバーとクライアントを起動するために同様に使用できます。
ttys
データベースエントリは関係ありません。
X サーバーとクライアントを実行するには、Mewburnrc
スクリプト、OpenRC スクリプト、または nosh Service Pack を作成することをお勧めします。
追加読書
ttys
。 FreeBSDファイル形式マニュアル。 2014年3月9日。- 」Xウィンドウシステム」。FreeBSDマニュアル。
答え2
私は次の方法を使用しています:
ttyv0
私のユーザーへの自動ログイン。~/.login
ttyを確認しました。その場合はttyv0
実行されますstartx
。- 完了(xorgセッションの終了)後の一時
startx
停止/再開についてお問い合わせください。
説明する:
1. 自動ログイン:到着/etc/ttys
:
ttyv0 "/usr/libexec/getty autologin" xterm on secure
そして/etc/gettytab
:
autologin::al=MYUSER
2.&3.関連内容~/.login
。私は使用していますが、tcsh
このアイデアも動作しますsh
。
if ($tty == "ttyv0") then
echo Starting Xorg...
startx
echo "Halt (h) Reboot (r) Nothing (n) ?"
set answer = $<
if ($answer == "h") then
/sbin/shutdown -p now
else if ($answer == "r") then
/sbin/shutdown -r now
endif
endif