ローカルコンピュータで実行された場合はタスクを実行しますが、リモートxrdpセッションで呼び出された場合はタスクを実行しない起動スクリプトを作成したいと思います。
If Local
{
do something
}
If remote
{
do something else
}
セッションがローカルで開始され、リモートで開始されたかどうかを確認するにはどうすればよいですか?
答え1
残念ながら、これは非常に難しい問題です。したがって、一般的に答えは残念ながら「いいえ」です。 $ DISPLAYを見るだけでは不十分です。これは、ユーザーが実際にコンピュータにいるのではなく、いくつかの形式のローカルXサーバー(xrdpなど)があることを意味するためです。
私が知っている唯一のオプションは、「is-local」属性を持つConsoleKitです。残念ながら、私はこれをシェルスクリプトで確認する簡単な方法がわかりません。 「ck-list-sessions」を使って何かをすることもできます。
また、バグがあるため、リモートセッションがローカルであると思うように簡単に欺くことができます。
セキュリティがそれほど重要ではない場合は、xrdpにそのセッションにのみ適用される特別な環境変数が設定されていることを確認することをお勧めします。端末で「env」を実行すると、利用可能な項目が表示されます。