Запуск скрипта в соответствии с терминальным контекстом

Запуск скрипта в соответствии с терминальным контекстом

Можно ли заставить текущий контекст или процесс, непосредственно взаимодействующий с пользователем, запускать сценарий при его изменении?

Например, пользователь

  • начинается с командной строки,
  • затем переходит в Emacs
  • выходит обратно в командную строку
  • идет в топ
  • уходит
  • и т. д.

Могу ли я заставить терминал для каждого из этих переходов автоматически запускать скрипт, который получает имя нового процесса и потенциально выполняет действие в соответствии с процессом?

решение1

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

Соответствующий ответ суперпользователя

Связанный контент