2016-12-13 5 views
0

Использование Bash, как я могу запускать фоновые задания в состоянии «приостановлено/остановлено»?Создание приостановленных фоновых заданий

Я должен выполнить сотни или более интенсивных по времени процессов, требующих больших затрат времени. Запуск их последовательно займет много времени:

for i in inputs-list; do 
    memory-hog $i 
done 

Принимая во внимание, запуская их все одновременно убили бы мою машину:

for i in inputs-list; do 
    memory-hog $i & 
done 

Я хотел бы мои процессы, чтобы начать в качестве фона, приостановленных заданий; то я бы использовал bg, чтобы возобновить некоторые из них, контролируя потребление памяти.

+1

может быть, 'человек xargs' и поиск' -P' (# процессов) может помочь вам. В любом случае вы будете сходить с ума от этого, занять еще несколько компьютеров или искать инструменты, такие как 'GNU parrallel'. Удачи! – shellter

+1

Используйте ** GNU Parallel **, чтобы контролировать, сколько раз подряд запускается и планировать в соответствии с давлением памяти. –

ответ

2

Начинайте каждый процесс в фоновом режиме, а затем отправить SIGSTOP:

for i in inputs-list; do 
    memory-hog $i & 
    kill -SIGSTOP $! 
done 

 Смежные вопросы

  • Нет связанных вопросов^_^