Вы уверены, что все хосты, на которых Вы хотите уничтожить процесс, находятся в Вашем кэше ARP?
Принятие дюйм/с непрерывно, Вы могли бы быть более обеспечены просто итерация через дюйм/с:
for i in {180..189}
do
ssh -l username 10.20.30.$[i} "ps -ef | grep X11 | grep -v grep | awk '{print $2}' | xargs kill"
done
будет работать до 4 [11562]./pgm[11563]s параллельно.
В противном случае, с [11564]pdksh[11565]/[11566]mksh[11567]/[11568]oksh[11569]:
подробности обработки сигналов варьируются от одной оболочки к другой. Этот трюк работает в [11570]pdksh[11571] и его производных, но не в любой другой оболочке, которую я пробовал. Вам нужна оболочка, в которой можно поймать SIGCHLD (исключая [11572]bash[11573]), где обработчик SIGCHLD выполняется сразу (не блокируется во время ожидания [11574]wait[11575]) (исключает [11576]ash[11577],
yash
), где обработка сигнала SIGCHLD прерывает ожидание [11580]wait[11581] (исключает [11582]ksh93[11583] и [11584]zsh[11585]).
В оболочках, кроме [11586]bash[11587], можно также посмотреть на подходы, где задания начинаются в обработчике SIGCHLD.
.