解決策を探して、似たような記事をたくさん見ましたが、解決策がないので、このように投稿します。
問題は、vncserver
端末またはスクリプトでコマンドを実行してセッションを開始してGNOMEデスクトップを作成できることです。ただし、起動時にスクリプトやsystemdを介さずにシステムにsshを接続したり、システムから直接接続した場合にのみ可能です。~/.vnc/xstartup
スクリプトは次のとおりです。
#!/bin/sh
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey -cursor_name left_ptr
xsetroot -solid grey left_ptr
vncconfig -iconic &
dbus-launch --exit-with-session /usr/bin/gnome-session &
セッションを開始するコマンドは次のとおりですvncserver :1 -localhost no -geometry 2560x1440 -depth 24
。
ssh
すべてがコンピュータ自体で完全に動作します。直接ターミナルコマンドを使用するか、それを含むスクリプトを介して。
しかし、起動スクリプトとして使用すると、同じスクリプトが失敗します。とsystemdを介して同じコマンドを実行すると失敗します。。まあ、「失敗」は強力です。その結果、反機能的なGNOMEデスクトップセッションが発生します。つまり、私がアクセスできるセッションが開始され、そのセッションが私の起動アプリケーション(および)を起動vnc
しました。しかし、gnome-terminal
nautilus
基本デスクトップ正常に起動しなかったため、ウィンドウを移動できず(終了することはできますが)、トップバーもなく、デスクトップがある場所に「いいえ!問題が発生しました!」というエラーが表示されます。
私の考えでは、これは起動時にジョブがどのように実行されるかに関連しているようですが、わかりません~/.vnc/xstartup
。tigervnc
GNOMEで作業するのに十分に見える唯一の製品であるため、これを使用しています。
答え1
VNCの以前は、単一のセッションに対して複数のクライアントにサービスを提供するVNCサービスを実行しました(セッションにはログインは必要なく、VNCからローカルユーザーとしてログインできました)。世界のすべてが明るくて良いです。 (私はこのようなやり方にこだわり、最初は変化を受け入れにくいと感じました。)
その後、ユーザーと管理者は、複数のユーザーがVNCを使用してVNCを介して独立したセッションを実行できるようにします。これを行うには、VNCサーバーソフトウェアの別々のインスタンスを実行する必要があります。 Systemdはテンプレートサービスユニットファイルを提供することによってそれをサポートします。これにより、1つのVNCサーバー単位ファイルがサービスの複数のインスタンスを提供でき、サービスを実行/使用しているユーザーのユーザー名がパラメータ化されます。 「サービステンプレート」を参照してください。https://www.man7.org/linux/man-pages/man5/systemd.service.5.html。
TigerVNCサーバーに付属のテンプレートサービスユニットファイルを使用する必要があります(新しいコピーは次の場所にある必要があります)。/lib/systemd/システム/[Eメール保護])。これにより、各ユーザーは必要に応じてサービスインスタンスを起動できます。これにより、ユーザーは~/.vnc/passwdそして~/.vnc/xstartupサービスインスタンス用。
これにより、必要な「ブート時」機能が多少妨げられますが(ブート時にさまざまなサービスを有効にできますが、そのポート番号は変更される可能性があります)、とにかくSSHを介してVNCセッションを転送する必要があります(VNCは安全ではないため)。 )