如何使用nohup执行多个命令

如何使用nohup执行多个命令

我需要使用 执行多个命令nohup。每个命令应在前一个命令之后执行。

我用这个命令作为例子:

nohup wget $url && wget $url2 > /dev/null 2>&1 &

然而该命令不起作用。

我应该使用什么命令来实现此目的?

答案1

将其包裹在sh -c

nohup sh -c 'wget "$0" && wget "$1"' "$url1" "$url2" > /dev/null &

答案2

在单独的 shell 文件(例如 command.sh)中创建命令列表而不使用任何 nohup 不是更简单吗?

然后你打电话:

nohup bash command.sh

答案3

其他人已经回答了nohup。作为一个实用的旁注:我建议在一个screen或多个会话中执行此类操作tmux。这样您就可以断开连接,然后重新连接并查看输出和最终结果。

答案4

一个更复杂的例子:

nohup sh -c 'echo $SU_PASSWORD | /afs/cs/software/bin/reauth; python -u ~/diversity-for-predictive-success-of-meta-learning/div_src/diversity_src/experiment_mains/main_sl_with_ddp.py --manual_loads_name sl_hdb1_5cnn_adam_cl_filter_size --filter_size 4 > $OUT_FILE 2> $ERR_FILE' > nohup.out$SLURM_JOBID &

相关内容