Screen Удобный инструмент системного администратора

Screen — это эмулятор терминала. Который позволяет запустить несколько сессий например в вашем удаленном терминале, которому нестрашны дисконнекты, т.е. процессы в screen остаются живы после закрытия вашей сессии.
Как пример в нем можно безопасно запустить правила файрвола, если по умолчанию он настроен как закрытый (в момент отработки вы потеряете ssh коннект, но в screen скрипт отработает до конца и при наличии разрешающих правил для вашего подключения в конфигурации firewall вы потеряете управление только на короткое время)
Так же время от времени появляются задачи держать какой-либо процесс запущенным ручным способом (в далекой практике держали терминальную ICQ для мониторинга потребления трафика), с помощью screen это легко сделать.

В системе FreeBSD изначально screen не установлен, установим (два варианта установки на ваш выбор – порты или пакеты)

  1. cd /usr/ports/sysutils/screen && make install clen
  2. pkg install screen

В Linux где-то scren идет в базовой инсталляции, где-то нет, можно проверить командой:

# whereis screen
screen: /usr/local/bin/screen /usr/local/man/man1/screen.1.gz /usr/ports/sysutils/screen

Если на ваша система Linux и в выводе wheries вы не обнаруживаете screen в bin(sbin) каталоге, то установите его с помощью вашего пакетного менеджера (apt, yum, etc)

Несколько полезных команд для работы со screen:

  • Запустить screen – screen
  • Отключится от screen – Ctrl+a+d
  • Убить текущий screen – Ctrl+a+K
  • Посмотреть все сессии screen – screen -list
  • Подключится к сессии screen – screen -r [имя сессии]
  • Подключится к единственной сессии – screen -r
  • Создать сессию screen, запустить процесс и не входить в нее –
    /usr/local/bin/screen -t MY_SESSION -d -m /home/admins/scripts/MY_SCRIPT.sh

Где:

  • -t – Имя сессии (Имя окна)
  • -d – Отключится от сессии
  • -m – Создать новую сессию

Что позволяет нам запустить процесс в screen при перезагрузке прибегнув к планировщику заданий Cron, просто добавив запись через crontab:

@reboot  /usr/local/bin/screen -t MY_SESSION -d -m /home/admins/scripts/MY_SCRIPT.sh

0 0 голосовать
Рейтинг статьи
Подписаться
Уведомление о
guest
0 Комментарий
Встроенные отзывы
Просмотр всех комментариев