10

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

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

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

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

3 ответа3

17

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

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

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

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

4

Звучит так, как вы хотите:

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

-S test: name this session
-d -m: start screen detached
-c /dev/null: ignore ~/.screenrc (provide a different file or drop this option,
  as needed)
--: end of screen options
sh -c 'date; exec $SHELL': command for screen to run, note that if this command
  was just 'date' then screen would exit immediately.  if you don't want to exit
  screen after your command exits, then you might use:
    $ screen -S test -d -m -c /dev/null -- your command here

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

1
screen -S <session_name> -X screen [-t <title>] <shell_command> [<args>]

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

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