Можно ли заставить текущий контекст или процесс, непосредственно взаимодействующий с пользователем, запускать сценарий при его изменении?
Например, пользователь
- начинается с командной строки,
- затем переходит в Emacs
- выходит обратно в командную строку
- идет в топ
- уходит
- и т. д.
Могу ли я заставить терминал для каждого из этих переходов автоматически запускать скрипт, который получает имя нового процесса и потенциально выполняет действие в соответствии с процессом?
решение1
Вы можете использовать rcaloras'bash-preexecскрипт для запуска команд pre-execute всякий раз, когда пользователь запускает что-либо из bash. Если пользователь входит в любую другую оболочку/приложение, ваш скрипт pre-exec будет запущен первым и может запустить свои собственные обработчики. Чтобы узнать, когда пользователь выходит из этой программы, одним из возможных решений было бы заставить ваш скрипт продолжать опрос в фоновом режиме, чтобы проверить, существует ли еще pid.