$ HOMEファイルシステムはopenAFSシステムです。自宅のラップトップからデスクトップにログインして長時間の作業を実行したかったです。だからセッション中断を防ぐために
screen -S session_name
そこからスクリプトを実行し、スクリーンセッションを切断します。私の問題は、比較的短い数時間後にセッションがAFSファイルシステムとの接続が失われ、$ HOMEに格納されているスクリプトのファイルを使用できないことです。後でセッションに再接続すると、その中にあるファイルを一覧表示できないか、ディレクトリを自分のホームディレクトリに変更できず、許可拒否エラーのみが発生します。
再接続を試みるために次のコマンドを試しましたが、これは通常デスクトップに長すぎるログインがある場合に機能します。
fs checkservers
fs checkvolumes
fs flush
ただし、これはスクリーンセッションを再接続するのには役立ちません。切断された画面セッションでAFSへのアクセスを維持する方法、またはbash / pythonスクリプトにコマンドを配置してアクティブな状態を維持する方法を知っている人はいますか?
答え1
krenew
デフォルトでは、-tフラグを使用してコマンドを実行するオプションを持つランニングをお勧めしますaklog
。通常、次のように梱包されます。始めるパック。
画面内部セッションを実行しますkrenew
。ぜひ入手してください再生可能Kerberosチケットと組織のKDCでは、チケットを更新できるタイミングに制限がある可能性があります。 Kerberosチケットが有効な限り、krenewはaklogを実行して更新されたトークンを取得します。
チケットを長期間アーカイブするには、SSHにアクセスするたびにkrenewプロセスが更新されたtgtにアクセスできるように、資格情報キャッシュが各ログインで同じであることを確認してください(例:KEYRINGを使用)。 /etc/krb5.confでデフォルトのccache名を設定できます。
私は基本的にこれを行うためにtmuxを使用しています。カフホームディレクトリ用のクライアントとOpenAFS。
答え2
だから今日試してみることを提案した解決策は次のとおりです。
まず、SSHを介してそのコンピュータにログインします。
次に、次のコマンドを実行して新しいKerberos / AFSセッションを作成します。
pagsh
AFS に再認証するには、次のコマンドを実行します。
klog
次のコマンドを使用してトークンが存在することを確認します。
tokens
ログインシェルを強制するには、-lオプションを使用してscreenを実行します。
screen -l -S session_name
アプリを起動して切断します。これまでは動作しているようです。