[英]How to run a second process with dependency to a running process using shell script?
我想使用 shell 腳本對 2 個進程進行自動化。 我有 2 個程序, a是工作負載, b是 CPU 分析器,用於在a運行時分析 CPU。
以前,我通過打開 2 個終端手動運行這些程序。 首先,在第一終端運行,然后在另一個終端,我得到的進程ID,最后運行./b [pid-of-a]
。 這導致我錯過了進程a的前幾秒鍾的分析。
我試過:
./a &
pid=$! &
./b pid
但它並沒有像我想要的那樣工作。 它運行B首先與由於所涉及的PID不存在將返回錯誤。 我也不能使用&&
,因為它會在b開始之前先等待a完成,這不是我想要的方式。
關於這種依賴,我應該對我的代碼做哪些修改?
后台不要設置pid
,要展開的時候記得加$
:
./a &
pid=$!
./b "$pid"
要不就
./a &
./b $!
編寫一個 bash 腳本,該腳本將使用 pgrep 檢查 ProcessA 並獲取其 pid
#!/bin/sh while true do pid=`pgrep -f processA` if [ ! -z $pid ] then ./processB $pid break fi done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.