web-dev-qa-db-ja.com

ログインシェルでxtermを実行するかどうか?

デフォルトでは、xtermはインタラクティブシェルを開始します。ただし、インタラクティブを開始するように構成することもできますlogin-Shell

つまり、xtermを開始すると、ssh/virtual console/suを介してログインするのと同じ種類のシェルを取得できます。

Xtermでlogin-Shellを構成することの長所/短所は何ですか?

私は考えることができます:

  • uptimewlastなどは、開いているxtermと同じ数のユーザーを報告します。 (利点?)
  • bashソースのみ.login.profile/etc/profile.dlogin-Shellとして開始した場合
  • zshには、起動時にlogin-Shellとして読み取る同様のファイルがありますが、私のシステムでは、デフォルトで空です。

関連するxtermのマニュアルページセクション:

   -ls     This  option  indicates  that  the Shell that is started in the
           xterm window will be a login Shell (i.e., the  first  character
           of  argv[0]  will  be  a  dash, indicating to the Shell that it
           should read the user's .login or .profile).

リソースもあります:

  loginShell (class LoginShell)
           Specifies whether or not the Shell to  be  run  in  the  window
           should be started as a login Shell.  The default is “false.”
5
maxschlepzig

ターミナルでログインシェルを実行すると、そのプログラムがセッションごとに1回だけ実行されると予想される場合でも、.profileに配置したすべてのプログラムが実行されます(たとえば、ssh-agentおよびその他のキーリング)。ログインシェルを実行すると、セッションまたは端末の親プロセスで設定した環境変数が上書きされます。

ターミナルでログインシェルを実行する人々が経験する最大の問題は、通常、GUIにログインするときに環境変数を設定しないことです。したがって、これの欠点は、環境変数が端末から開始されたプログラムでのみ使用可能であり、GUIを介して直接開始されたプログラムからは使用できないことです。ログイン時に環境変数を設定する場合、各端末で環境変数を再度設定することは、せいぜい無意味であり、上記のように問題になることがあります。

。bashrcと.bash_profileの違い。bashrcの代替 、およびスタックエクスチェンジで見たかなりの数の質問も参照してください。セッションごとに環境変数を設定します。