SSH接続が切断された後でもプロセスを実行し続ける方法は?

SSH接続が切断された後でもプロセスを実行し続ける方法は?

私はLinuxベースのルータを持っており、ホームオートメーションコントローラでこれを「制御」しようとしています。マイオートメーションコントローラでは、「双方向文字列」ドライバを使用してリモコンのボタンを押してから、Linuxルータに文字列を送信できます。送信された文字列がルーターで実行されることを望みます。

ルータへのSSH接続中に次のコマンドを実行すると、これを行うことができます。

$ rm -f /tmp/f; mkfifo /tmp/f
$ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

ターミナルウィンドウを開いたままにすると、オートメーションコントローラはiptablesを変更する文字列を送信できます。

私が経験している問題は、SSH接続を閉じた後もこれが持続しないことです。 SSH接続が閉じた後も、ルータにコントローラからコマンドを受信して​​実行させる方法はありますか?

以下は、私が送信する文字列の例です。

iptables%20-I%20INPUT%20-s%20192.168.1.214%20-j%20DROP%0A

基本的に私の最終目標は、ボタンを1つだけ押してネットワーク内の特定のデバイスへのトラフィックを減らすことです。

ホームラップ環境なので安全は問題になりません。

ベストアンサー1

nohupSSH接続が閉じた後でもコマンドを実行できるようにしたい(遠隔交換員が電話を切る。)。プロセスは と同じです。この回答:

nohup sh -c 'rm -f /tmp/f ; mkfifo /tmp/f && cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f'

おすすめ記事