.bashrcスクリプトを無視するSSHパラメータ


8

サーバーが起動.bashrcすると、次のコマンド/bin/watch ~/checker.bashが実行され、サーバーの起動時にそのコマンドを監視します。

そのマシンにログインするクライアントもいますが、クライアントのセッションでから同じコマンドを実行したくありません.bashrc

AcceptEnvenv varsを渡すために検討しましたが、サーバーの構成が必要なので、避けたいです。

また、異なるユーザーアカウントに2つの異なるユーザーアカウントを設定したくありません.bashrc

これからアプローチする別の角度はありますか?


2つの異なるアカウントが必要なのはなぜですか。すべて(関連性のないサードパーティのように見える)、「クライアント」は(も自分から)分離する必要があります
ウムラウト

回答:


5

.bashrc介して呼び出されない場合にのみ、の一部をアクティブ化できますssh

例:

# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /bin/watch ~/checker.bash
fi

魅力のように働き、ここでのすべての答えは私に多くを教えてくれました。とても有難い!
ljs.dev 2013年

13

二通り:

このセッションではbashを使用しないでください。ダッシュ(または/ bin / sh)を試してください。

ssh 127.0.0.1 /bin/dash

コマンドオプションを指定してbashを使用し、スタートアップファイルの処理を無効にします。

ssh 127.0.0.1 "bash --noprofile --norc"

あなたはあなたの方法を試しましたか?(特に#2)?
ウムラウト

1
2番目の方法は私のためにハングします。
slm

5
2番目の方法は、私にとって完全に機能します。PS1が設定されていないため、プロンプトは表示されません。これは、要求どおりに実行することの副作用です。
Dan Garthwaite、2013年

どちらもちょうど私のためにハングアップします
アディティアミタル2017年

@AdityaMittal PS1プロンプトがないため、インタラクティブセッションを呼び出している場合、両方がハングしているように見えます。「ls /」と入力してみてください
Dan Garthwaite

2

/ bin / watch ....という行を次のように置き換えることができます

 if ps ax | grep /bin/watch | grep -v grep  > /dev/null 2>&1
 then
    echo "Nothing to do"
 else
    /bin/watch ~/checker.bash
 fi

またはそのようなもの。


わかりました。この例では、watchコマンドを実行している複数のシェルがあるかもしれませんが、解決策が好きです。
ljs.dev 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.