簡體   English   中英

如何使用shell腳本運行依賴於正在運行的進程的第二個進程?

[英]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.

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