CLI は複数のコマンドを実行し、端末を閉じます。

CLI は複数のコマンドを実行し、端末を閉じます。

次のコマンドを実行して端末を閉じたいです。

mysqldump -udatabase -pdatabase database > db.sql && zip db.sql.zip db.sql && rm db.sql && mv db.sql.zip /var/www/vhosts/*/httpdocs && cd /var/www/vhosts/*/httpdocs && zip -r backup.zip . && cd && touch backup_is_ready

端末が開いている場合は正常に動作しますが、ZIPは約40GBで、端末を閉じることができるようにしたいです。それ以外の場合は、切断するとプロセスが終了する可能性があります。

だから、A&&Bコマンドがあります。

私は試した:

(A &) && (B &)

(A && B) &

{A && B} &

nohup sh -c "A && B"

nohup { A && B } &

そして他の多くのオプションがありますが、何も機能しません。

コマンド文字列を端末に入れてから端末を閉じて、1時間後に戻って準備したいと思います。

私も長い命令体系を持っています。

sh <(wget -O - https://autoinstall.plesk.com/one-click-installer) && plesk bin init_conf --init -name "John Doe" -passwd "mypassword" -email "[email protected]" -send_announce false -trial_license true -license_agreed true && plesk bin subscription --create example.com -owner admin -service-plan "Unlimited" -ip 000.000.000.000 -login username -passwd 'password' && ...

私のコマンドチェーンは、端末が開いているときにうまく機能します。ターミナルに入れた後、コマンドチェーンを閉じたいのですが、ファイルを作成したくありません。

Bashファイルを作成せずに使用できる構文はありますか?

答え1

  1. Ctrl + Zはプログラムを停止(一時停止)し、シェルに戻ります。
  2. bgバックグラウンドで実行してください。
  3. disown -h [job-spec]どこ【職業仕様】端末が閉じられたときにジョブが終了しないように、ジョブ番号(例えば、実行する最初のジョブの場合は%1、ジョブ番号を見つけるにはjobsコマンドを使用)。

答え2

バックグラウンドでプログラムを起動するには、次のようにします。

<your command> &

必要なものを2つの別々のコマンドで実行することをお勧めします。努力する:

user@hostname$ A &
user@hostname$ B &

このプロセスが面倒すぎたり頻繁に実行する必要がある場合は、次のコマンドを入力できます。シェルスクリプト。その後、スクリプトを実行できます

/path/to/my_script.sh &

修正する:

あなたのコメントの他の情報に基づいてホストにsshを接続し、複数のコマンドを実行してから切断する方法の概要については、この回答を参照してください。https://stackoverflow.com/a/4412338/3465014

関連情報