У нас есть длительный процесс на удаленном сервере, который время от времени запускается вручную. К сожалению, интернет-соединения прерываются, паника ядра и целый ряд других проблем могут возникнуть в сеансе ssh, который используется для подключения и запуска задания.
Экран, кажется, идеальный способ убедиться, что процесс не прерывается. Однако полагаться на то, что человек всегда помнит о том, чтобы запустить экран, а затем запустить сценарий для запуска процесса, - это проблема, ожидающая своего появления. Есть ли способ из сценария, который я могу проверить, чтобы увидеть, вызывается ли сценарий из экрана? Если это так, процесс продолжится, в противном случае скрипт завершит работу с сообщением, указывающим пользователю сначала запустить экран.
источник
Ответы:
Для этого есть переменная окружения. Если он запускается на экране,
$TERM
будетscreen
. Это так просто; просто сделай если на нем. Например,будет эхо-бар, когда на экране; фу иначе.
источник
screen-256color
если пользователь настроил поддержку 256 цветов.Пока вы работаете с экраном, почему бы не запустить скрипт с помощью nohup? Это также гарантирует, что он продолжит работать, если вы отключитесь.
Он выводит в файл по умолчанию, так что вы можете использовать другие инструменты для мониторинга вывода скрипта, если хотите.
источник