ฉันกำลังมองหาสคริปต์ทุบตีที่ตรวจสอบว่ากระบวนการติดตั้งกำลังทำงานอยู่และรอ / หยุดชั่วคราวหากกระบวนการนั้นดำเนินการต่อเมื่อกระบวนการไม่ทำงานอีกต่อไป
นี่คือสิ่งที่ฉันมี:
#!/bin/bash
PROCESS="Installer";
PID=$(ps -A |grep -m1 "$PROCESS" | awk '{print $1}');
while s=`ps -p $PID -o s=` && [[ "$s" && "$s" !='Z' ]]; do
echo "$PROCESS is Running, waiting for it to close"
sleep 1
done
echo "$PROCESS is not Running";
SCRIPT HERE
2
เราไม่ใช่บริการการเขียนสคริปต์ คุณลองทำอะไรไปแล้ว?
—
nohillside
ขอบคุณ มันไม่ทำงานตามที่คาดไว้?
—
nohillside
เช่นเดียวกับคำถามอื่น ๆ ของคุณคุณต้องแน่ใจว่าคุณค้นหาสตริงที่ถูกต้อง ที่นี่คุณกำลังค้นหา "ตัวติดตั้ง" ซึ่งหมายถึงกระบวนการใด ๆ ที่มีสตริงนั้นจะตรงกัน (เช่น "ตัวติดตั้งความคืบหน้า" ฉันจะปรับค่านี้เป็น "ตัวติดตั้งแอพ"
—
Scot
และเพื่อหลีกเลี่ยงการพึ่งพากระบวนการแสดงก่อนที่
—
nohillside
grep
ฉันจะใช้pgrep
แทน (ซึ่งแม้จะส่งคืน PID โดยตรง)