Как сделать песочницу (или контролировать) процесс в OSX
Я использую часть программного обеспечения для оптического распознавания текста [с графическим интерфейсом и т. Д.] В OSX, которая просматривает папку и файлы PDF для оптического распознавания текста, которые находятся там. Иногда процесс начинает плохо работать и потребляет огромное количество системной памяти и ЦП, бесконечно работающих на конкретном PDF.
- Я хотел бы знать, как контролировать этот процесс, чтобы убить его при таких обстоятельствах.
- Я также хотел бы предотвратить остановку системы, например, путем песочницы.
3 ответа
Вы можете изолировать приложение в OS X с помощью встроенной функции sandbox(7). См. Справочные страницы для sandbox(7), sandbox-exec(1) и sandboxd(8). Этот репозиторий сценариев с песочницей также может быть полезен.
OS X 10.7 (Lion) также предоставит больше возможностей для песочницы приложений, но подробности на сайте Apple невелики. Я предположил бы, что это будет связано с вышеупомянутой особенностью.
Чтобы убить процесс, вам нужно найти его номер процесса.
$ ps a| grep _process_name_
это приводит к списку:
Образец:
$ ps a|grep Safari
31755 s000 R+ 0:00.00 grep Safari
Теперь убейте процесс:
kill 31755
Есть несколько ключей для команды kill, иногда вам нужно использовать kill -kill _process number_
Чтобы получить полный список опций, используйте main kill
Обычная ол ps
может помочь с этим: мы запускаем процесс, который учитывает количество секунд процессора, которое каждый процесс использовал в соответствии с ps
по сравнению с истекшим временем настенного часа и предупреждает системного администратора, чтобы посмотреть, является ли отношение чрезмерным; Вы можете, конечно, связать это с уничтожением определенных процессов, если захотите.