Bash
通過 atd 生成的腳本使程序處於等待狀態
我有一個
bash
通過 執行的腳本at
,我執行它是echo "bash /path/to/my/script.sh" | at -M now
因為我希望它獨立執行。生成腳本後,我立即看到 2 個實例 (
ps
),即使在我的腳本成功完成後,另一個實例也不會終止。它將被重新設置為 pid1
並繼續等待(strace
顯示wait4(-1...
)。我無法弄清楚為什麼或如何分叉第二個實例!當我在沒有 的情況下執行腳本時
at
,我看不到第二個程序。調試這個的任何提示/提示?謝謝。
簽出這個簡單的腳本:
#!/bin/bash exec >/tmp/$$.log exec 2>/tmp/$$-2.log set -x echo "1" echo "2" >&2
這會將腳本 stdout 和 stderr 的整個輸出重定向到指定的日誌文件(在本例中為
/tmp/<pid>.log
and/tmp/<pid>-2.log
),並且日誌文件的 stderr 部分將包含它執行的每個命令。您可以使用此輸出來跟踪腳本的執行,並查看它掛在哪裡…17958-2.log 的內容:
+ echo 1 + echo 2 2