У меня есть путь к исполняемому файлу. Предположим, я хочу удалить этот файл.
Мне нужно найти все процессы, запущенные с помощью этого файла, и убить их. Как лучше всего это сделать?
Может быть lsof (список открытых файлов) может вам помочь.
Чтобы перечислить все процессы, использующие определенный файл:
lsof /path/to/your/specific/file
Добавление -t
опция вернет только PID, которые используют данный файл.
Итак, оттуда вы можете убить все процессы, которые используют конкретный файл:
lsof -t /path/to/your/specific/file | while read PID; do kill -9 $PID; done
Или что-то вроде:
kill -9 $(lsof -t /path/to/your/specific/file)
Теперь, предполагая, что вы находитесь в мире * nix, вы можете использовать fuser
команда.
fuser <file_name>
выведет список всех процессов, использующих этот файл. Чтобы убить процессы, обращающиеся к файлу,
fuser -k <file_name>
Предполагая, что вы имеете в виду Windows, вы можете использовать Монитор процесса из пакета Windows SysInternals