リモートセッションを開始するには、Gnomeで次の.desktopファイルを実行します。
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=xfreerdp RDP
Comment=A sample application
Exec=/usr/bin/xfreerdp +clipboard +smart-sizing -decorations /u:myuser /d:DOMAIN /v:pc.domain.com /f /kbd:0x00000807 /fonts
Icon=/home/user/.local/share/applications/rdp.png
Terminal=true
これにより、セッションパスワードを入力できる端末ウィンドウが開きます。パスワードを入力した後、セッションが開始されます。これで端末を閉じると、リモートセッションも閉じます。
どうすればこれを防ぐことができますか?
これまで試したことは、xfreerdpを直接起動し、「&」を使用してgenerateigを実行するbashスクリプトを実行することでしたが、うまくいきませんでした.次のようになります。
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=xfreerdp RDP
Comment=A sample application
Exec=/home/user/.local/share/applications/xfreerdp.sh
Icon=/home/user/.local/share/applications/rdp.png
Terminal=true
これはxfreerdp.shスクリプトです:
echo "password:"
read p
/usr/bin/xfreerdp +clipboard +smart-sizing -decorations /p:$p /u:user /d:DOMAIN /v:pc.domain.com /f /kbd:0x00000807 /fonts &
答え1
これには考えられる理由がいくつかあります。考えられる理由の1つは、端末を閉じるとSTDOUT / STDERRが閉じてプログラムが何かを出力しようとすると、プログラムが終了する可能性があることです。この問題を解決するには、次のコマンドをリダイレクトします/dev/null
。
/usr/bin/xfreerdp <ARGS> 1>/dev/null 2>&1 &
しかし、これは必ずしも問題に対する好ましい解決策ではありません(コメントに対するあなたの回答に従って動作していても)。このような状況のベストプラクティスを見つけるには、よく読んでください。
別の考えられる原因は、使用中の端末エミュレータ(xterm
/konsole
など)が送信中である可能性があることです。ため息をつく終了時に子にシグナルを送信し、そのシグナルによって子が終了することがあります。この問題を解決するには、次のコマンドを実行しますnohup
。
中断の影響を受けないコマンドを実行し、tty 以外のコマンドで出力します。
また、nohup
実行するコマンドのSTDOUT / STDERRをファイルにリダイレクトします。マニュアルページから:
If the standard output is a terminal, all output written by the named
utility to its standard output shall be appended to the end of the file
nohup.out in the current directory. If nohup.out cannot be created or
opened for appending, the output shall be appended to the end of the
file nohup.out in the directory specified by the HOME environment vari-
able.
したがって、このコマンドを使用すると、リダイレクトを実行する必要はありません。
nohup /usr/bin/xfreerdp <ARGS> &