「nohup」を使用してもコマンドは終了します。

「nohup」を使用してもコマンドは終了します。

私がここで何を間違っているのか?

パテを使用して最初のサーバーにログインし、次のクエリを実行しました。

sh -c 'nohup mysqldump -hxxx -Pxxx -uxxx -pxxx --dump-slave --include-master-host-port --apply-slave-statements -f -q -A -E -R | mysql -hxxxx -Pxxxx -uxxxx -pxxxx' &

両方のデータベースを見ると、MySQLDumpが最初のデータベースで実行され、2番目のデータベースからインポートされていることがわかります。

ただし、Puttyセッション(またはタイムアウト)を閉じると、mysqldumpの実行が停止します。私はnohup実行し続けるべきだと思いましたか?

実行には8時間かかりますので、タイムアウトを防ぐためにそこに座って8時間の間Puttyを見守ることはできません。

ベストアンサー1

なしでシェルを実行しているため、セッションを閉じるとシグナルを受信してnohup​​パイプラインのすべてのプロセスに送信します。SIGHUP2番目のmysqlコマンドは、なしで再実行されるため、終了してnohup転送され、SIGPIPE終了nohup mysqldumpします。

努力する

nohup sh -c 'mysqldump -hxxx -Pxxx -uxxx -pxxx --dump-slave --include-master-host-port --apply-slave-statements -f -q -A -E -R | mysql -hxxxx -Pxxxx -uxxxx -pxxxx' &

おすすめ記事