同様の問題がある質問があることを知っています。このようにしかし、そこにあるソリューションは私の状況に十分に具体的ではありません。
Xを使って始める方法startx
があることを知っていますが、次のことをしたいと思います。xinit
logind
コンテキスト:私はOpenSUSE TumbleweedとSystemdを使用しています。
特定のttyからログインすると、カスタムユーザーターゲットとユーザーサービスを使用して複数のプログラムを起動しようとします。サービスの1つはXサーバーです。現在、次のサービスファイルがあります~/.config/systemd/user/Xserver.service
。これは、vt7で空のXorgサーバーを起動することを意味します。
[Unit]
Description=Starts the X server
After=default.target
[Service]
Type=simple
ExecStart=/usr/bin/X vt07 :0
NoNewPrivileges=false
[Install]
# Irrelevant as of time being, just some custom targets I plan on isolating later.
ただし、このサービス()を起動しようとすると、systemctl --user start Xserver.service
終了コード1で失敗し、Xorgログの読み取り中に「VT切り替え失敗」というメッセージが表示されます。
私はこの時点でXがroot権限(setuidのため)で実行され、すでに/ dev / tty7に接続されている必要があることを知っていますが、どのようにこれが起こりますか?
動作させるにはどうすればよいですか?
PS:(動的にttyを割り当てるsystemdの推論は、サービスの起動時にすでにttyにログインしているため、ここには適用されません。)