簡體   English   中英

如何在腳本退出時未停止的bash腳本中運行命令?

[英]How to run a command in bash script which is not stopped when the script exits?

我有一個BASH腳本運行其他命令,我想讓它們運行,以防主腳本停止。 我嘗試用&運行這些命令,但它沒有幫助。 難道我做錯了什么?

這是正常的:shell的作業控制機制在退出時終止其作業。

至少有兩種解決方案:

  • 在你找到工作后使用disown ;
  • 用於at以后安排你的工作;
  • 或使用nohup命令。

現在,問題是您要對在后台啟動的命令的輸出做什么:

  • 如果被disown ,你就會失去它;
  • at ,stdout和stderr通過郵件發送給你(但是如果你願意,你可以重定向stdout / stderr);
  • 使用nohup ,您自己定義輸出文件。

嘗試'nohup'命令運行COMMAND ,忽略掛斷信號

nohup COMMAND &

在命令之前嘗試使用nohup(代表沒有掛起):

nohup <your command>

默認情況下,它會將命令的stdout轉發到名為nohup.out的文件中。

以下是如何執行此操作的示例:

nohup your_command < /dev/null > output.log 2>&1 &

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM