2012-01-05 31 views
5

Tôi có một câu hỏi liên quan đến các kịch bản lệnh shell (môi trường là Linux, tốt nhất là Ubuntu).Kịch bản lệnh Shell để chạy nhiều quy trình

Chúng tôi muốn thực hiện kiểm tra căng thẳng trên ứng dụng RESTFul. Kiểm tra căng thẳng bao gồm hai quy trình. Chạy chúng có thể là một cái gì đó như:

java -jar stress.jar

java -jar stress.jar -someparameter somevalue

Hai phải được bắt đầu cùng một lúc.

Quy trình đầu tiên sẽ bắt đầu, chạy và trả lại. Cái thứ hai nữa. Theo định nghĩa, giây thứ hai sẽ trả về sớm hơn nhiều, và chúng ta muốn nó được thực thi nhiều lần cho đến khi cái đầu tiên trả về.

Tôi sẽ rất cảm ơn nếu ai đó có thể cung cấp cho tôi kịch bản (hoặc những điều cơ bản mà tôi có thể sử dụng) để đạt được điều này.

EDIT

này đã làm các trick:

#!/bin/bash 

commandA & apid=$!; 

sleep 10; 

while kill -0 $apid; do commandB; done 
+0

Thử nghiệm giải pháp yên tĩnh - http://stackoverflow.com/questions/203495/testing-rest-webservices. Sử dụng bash để tạo điều kiện thử nghiệm có thể không ổn định. – Jayan

+0

Tôi chỉ muốn sử dụng bash để "tự động nhập" các lệnh mà tôi đã sử dụng để khởi động các chương trình này - vì bạn có thể thấy bộ thử nghiệm của chúng tôi đã được triển khai trong các JAR. Bạn có nghĩa là tôi không thể dựa vào bash cho nhiệm vụ đơn giản này? – gyorgyabraham

Trả lời

2

sử dụng & điều hành để bắt đầu quá trình đầu tiên trong nền:

java -jar stress.jar & 

quá trình tốn kém thứ hai bạn có thể bắt đầu nhiều lần trong nền trước trong khi đầu tiên đang chạy:

java -jar stress.jar -someparameter somevalue 
java -jar stress.jar -someparameter2 somevalue2 

nhưng nếu quá trình in thành thiết bị xuất chuẩn, điều đó có thể bị rối tung.

0

Đây là một cách khác mà nên làm việc


#!/usr/bin/expect 
spawn java -jar stress.jar -someparameter somevalue 
expect -timeout 0 timeout { 
    system java -jar stress.jar -someparameter2 somevalue2 
    exp_continue 
} 

Tôi tin rằng đây là một chút vượt trội so với các vòng lặp while OP posted vì đó bị một tình trạng chủng tộc pid khai hoang, mà có thể là nghiêm trọng nếu cuộc sống chỉ huy thứ hai trong một khoảng thời gian dài.

Các vấn đề liên quan