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 停止(暂停)程序并返回 shell。
  2. bg在后台运行它。
  3. disown -h [job-spec]在哪里[职位规格]是作业编号(例如 %1 表示第一个运行的作业;使用 jobs 命令查找您的编号),以便在终端关闭时作业不会被终止。

答案2

要在后台启动程序,请使用:

<your command> &

我建议只是将您想要的内容作为两个单独的命令运行。尝试:

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

如果此过程过于繁重或需要频繁运行,您可以将这些命令输入到外壳脚本。然后可以运行该脚本

/path/to/my_script.sh &

更新:

根据您评论中的其他信息,有关如何 ssh 到主机、运行多个命令然后断开连接的概述,请参阅以下答案:https://stackoverflow.com/a/4412338/3465014

相关内容