Obecnie używam superwizora do obsługi 100 wystąpień skryptu jednocześnie. Jeśli jakakolwiek kostka, zaczyna nową.
Jednak wydaje się, że walczy o utrzymanie większej liczby (> 300 procesów) i szukam zamiennika. Monit nie wydaje się robić tego, co chcę, ponieważ monitoruje poszczególne skrypty i wydaje się, że nie jest w stanie z łatwością oglądać 100 wystąpień tego samego skryptu.
Jakieś sugestie dotyczące innego narzędzia, którego mógłbym użyć?
process
monitoring
jong
źródło
źródło
Odpowiedzi:
Możesz użyć:
aby uzyskać liczbę procesów potomnych ze skryptu bash (pamiętaj, że to ps). Więc jeśli chcesz mieć 1000 procesów, sprawdź, czy to zwraca 1001. Jeśli nie, uruchom je za pomocą:
aby działały jako dzieci bieżącego skryptu (i dlatego zostały uwzględnione w liczeniu.) Możesz potem trochę spać, a następnie sprawdzić ponownie w pętli na zawsze. Jedną z rzeczy, o których należy pamiętać, jest to, że jeśli spawnujesz inne procesy, będziesz musiał zmodyfikować
ps
polecenie, aby odfiltrować pożądane procesy.To pierwsze polecenie jest kluczowym elementem układanki, powinno być tylko trochę więcej, dopóki nie otrzymasz skryptu.
źródło
Użyłbym
pgrep|wc -l
czegoś takiego w prostym skrypcie powłoki. Poczekaj sekundę (lub krócej w systemie Linux, jeśli chcesz) między każdym czekiem za pomocąsleep
.źródło
Jeśli twój skrypt umrze i po prostu wróci do powłoki, możesz użyć skryptu opakowania dla każdej instancji:
lub piszesz opakowanie, które rozwidla skrypty i używa
wait/waitpid
do łapania martwych procesów.źródło