Вы можете убить все экземпляры вашего скрипта, если знаете, как ваш процесс вызывается во время выполнения (в этом примере toplog.sh).
ps x | grep toplog.sh | grep -v grep | cut -d" " -f1 | xargs kill -9
ps x предоставляет вам список всех ваших процессов, из которых целевой процесс будет выделен. Второй grep просто убирает сам вызов grep из списка. В противном случае вы получите сообщение об ошибке (что на самом деле все еще не проблема, но некрасиво). cut -d "" -f1 разрезает каждую строку на несколько частей, разделенных пробелами, при этом * -f1 ** берет первую часть. xargs kill -9 убивает все pid, которые ранее были выброшены из цепочки команд.
Для удобства вы можете поместить эту строку в сценарий уничтожения, при этом имя процесса заменяется аргументом сценария уничтожения:
#!/bin/bash
ps x | grep $1 | grep -v grep | cut -d" " -f1 | xargs kill -9
Затем сценарий вызывается с именем процессов, подлежащих уничтожению.
./kill.sh toplog.sh
Ваше приложение "Терминал" в OS / X настроено на сохранение всех строк текущего сеанса с момента его открытия, если у него есть память. Вы должны ограничить количество строк, сохраняемых приложением Терминал.
Перейдите в Терминал-> Настройки-> Профили, отредактируйте свой активный шаблон, где вы увидите прокрутку, измените переключатель с «Ограничить доступную память» на «Ограничить количество строк до» и поместите туда разумное число (возможно, от 1000 до 2000).
Боюсь, что этот параметр применяется только к новым сеансам оконного терминала, поэтому вы должны закрыть текущие и открывать новые.