отправить команду на уже запущенный сеанс экрана

Я пытаюсь отправить команды на запущенный сеанс экрана gnu (4.00.03) в opensolaris, но не могу заставить его запускать какие-либо команды с помощью любой комбинации screen -X

Хорошо, я запускаю сеанс экрана с помощью screen -S test, а затем пытался с помощью screen -r -X "date", чтобы просто показать мне дату, когда я снова подключусь к ней. Но ни сообщения об ошибке, ни вывода на экране не произошло. Я пробовал так много комбинаций, что я даже не могу вспомнить.

Любые подсказки о том, как это сделать?

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

9 голосов | спросил aXon 5 MaramFri, 05 Mar 2010 11:59:28 +03002010-03-05T11:59:28+03:0011 2010, 11:59:28

3 ответа


17

На самом деле все довольно просто. Вы можете использовать следующее:

screen -S sessionname -X stuff 'command'`echo -ne '\015'`

echo -ne '\015' эмулирует нажатие клавиши Enter .

ПРИМЕЧАНИЕ: это «материал» - это команда экрана. http://www.gnu.org/software/screen/manual/screen .html # Материал

ответил thegatekeeper 22 PMpFri, 22 Apr 2011 13:03:40 +040003Friday 2011, 13:03:40
4

Похоже, вы хотите:

$ screen -S test -d -m -c /dev /null-sh -c 'date; exec $ SHELL '

-S test: назовите этот сеанс
-d -m: начальный экран отключен
-c /dev /null: игнорировать ~ /.screenrc (предоставить другой файл или отказаться от этой опции,
  по мере необходимости)
-: конец экрана
sh -c 'date; exec $ SHELL ': команда для запуска экрана, обратите внимание, что если эта команда
  был только «дата», затем экран немедленно выйдет. если вы не хотите выходить
  после выхода из вашей команды, вы можете использовать:
    $ screen -S test -d -m -c /dev /null - ваша команда здесь

Или, может быть, вам просто нужно dtach .

ответил 5 MarpmFri, 05 Mar 2010 23:41:57 +03002010-03-05T23:41:57+03:0011 2010, 23:41:57
1
screen -S <session_name> -X screen [-t <title>] <shell_command> [<args>]

Откройте новое окно (с заголовком title ) в существующем сеансе с именем session_name и выполните shell_command (с необязательными аргументами арг )

ответил Jeremy Kao 18 J000000Thursday13 2013, 19:23:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132