Bashのスニペットをコピーして、リモートで実行されるsshコマンドをバックグラウンド化しました。
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
何を<&-するの?
私の推測では、それは同じです< /dev/null
私の次の理解では、三つの主要なファイルディスクリプタが(ということでstdin、stdout、stderr)を防止するためにクローズする必要があります。
- ジョブがバックグラウンドになり、スクリプトが終了します-どういうわけか競合しますか?
- ターミナルを閉じると、ターミナルからstdinを受け入れているすべてのプロセスが閉じられますか?
ssh -nNT user@remote 'command'、非対話型のSSHセッションが作成されます。追加&の背景にそれ、前に付加nohupへcommandの接続ダイあれば実行し、それを維持します。
man sshは、-Nがリモートコマンドの実行を完全に無効にすることを提案し、クイックテストはそれをサポートします。