Для использования IRC я обычно открываю irssi на моем безголовом сервере во время сеанса экрана. Затем иногда я отключаю его, чтобы дождаться ответа, но иногда я не уверен, что на сервере уже открыт экран с irssi.

Для этого времени я хотел бы иметь возможность сказать экрану: «Снова подключите к работающему экрану, но если он не существует, создайте новый с помощью этой команды». Я пытался сделать это с:

$ screen -R irssi

но он не показывает желаемое поведение (вместо этого он открывает пустой сеанс экрана, когда его нет, без запуска irssi).

3 ответа3

1

Не уверен, что это покрывает все ваши требования

screen -dRq sessionname irssi

Если экран не запущен, он создает новый сеанс с именем "sessionname" и запускает irssi. "Q" подавляет новое подтверждение экрана.

Когда вы отсоединяетесь, он снова присоединяется к существующему "имени сеанса", которое запускает irssi.

Не уверен, что он работает с несколькими сеансами экрана, то есть я просто не пробовал

0

Если irssi - это то, что вы почти всегда запускаете на экране, то почему бы не установить .screenrc который автоматически запускает irssi. Затем просто запустите screen -R . Если ваша сессия не запущена, то она начнется.

# more .screenrc 
startup_message off
term linux
screen 0  irssi

Если вы не хотите, чтобы ваш экран запускался по умолчанию, вы можете просто создать rc-файл с нестандартным именем. Возможно .screenrc-irssi . Затем укажите конкретный конфигурационный файл, например, screen -c .screenrc-irssi .

0

Хм, меня слегка смущают существующие ответы. Но если запуск двух вызовов screen не проблема, вы всегда можете сделать это:

screen -xS sessionname || screen -S sessionname irrsi

Это попытается подключиться к существующему без отсоединения какого-либо другого экрана и, если это не удастся, создать новый сеанс с таким именем. Это то, что у меня есть alias ed в моем .bashrc и он работает как шарм.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .