как уловить приостановку резюме из сценария bash

У меня есть скрипт bash (on osx), который работает непрерывно, он в настоящее время ловушки и обрабатывает завершение так же

trap onshutdown TERM

  • Что означает «следовая ловушка», когда сообщается zsh?
  • Почему SIGSTOP не работает внутри сеанса экрана?
  • Почему bash игнорирует SIGTERM?
  • fork () и как сигналы передаются процессам
  • Выполняет ли дочерний процесс fork оболочки в bg сигналы SIGSTOP от родителя?
  • Как реализованы сигналы в Linux?
  • как я могу сделать ловушку также обрабатывать suspend / resume like

    trap onsuspend ?

    trap onresume ?

  • Фоновый процесс сценария по-прежнему сохраняется после закрытия терминала
  • Как приостановить и возобновить процессы, такие как bash
  • Почему этот трубопровод получает SIGTTIN?
  • Что означает «следовая ловушка», когда сообщается zsh?
  • Почему мы не можем убить зомби?
  • Ctrl + C не работает в gnome-terminal
  • 2 Solutions collect form web for “как уловить приостановку резюме из сценария bash”

    Вы ищете сигналы SIGTSTP и SIGCONT. Попробуй это:

     trap onsuspend TSTP trap onresume CONT 

    Поскольку программа просто приостанавливается и не надежно передается, я бы вместо этого установил именованный канал и создавал скрипт с часовым поясом.

    Он просто зацикливал каждые 5 или 15 минут, записывая текущую метку времени в именованный канал, а затем спал.

    Затем вы можете прочитать эту трубку и выполнить математику между чтениями – если время скачет более одного или двух пингов, вы спали.

    В зависимости от того, насколько точны вам нужные времена, вы можете затем закрепить файл /private/var/log/system.log (и, возможно, /private/var/log/system.0.log.gz) для последнего времени сна / бодрствования регистрируется ядром.

    Это будет больше работы, чем полагаться на сигналы. Вы также можете запустить помощник и отправить любой сигнал, который вы хотите использовать для своего сценария.

    Шесть из одного, полдюжины другого.

    Linux и Unix - лучшая ОС в мире.