LINUX.ORG.RU

Работа с SCREEN


0

1

Есть процесс (предположительно, программа на C/C++), который запускается в Screen. Можно ли самописной программой на C++ «прицепиться» к первой, ввести туда одну команду и прочитать вывод?


Я так думаю в данном случае проще запускать процессы непосредственно из своей поделки. Screen здесь явно лишним выглядит.

fat_angel ★★★★★
()
Ответ на: комментарий от unC0Rr

Как? Написать терминал на C++, в котором можно было бы использовать скрипты из bash? Есть хотя бы поверхностные мануалы, как это сделать?

Я так думаю в данном случае проще запускать процессы непосредственно из своей поделки. Screen здесь явно лишним выглядит.

В данном случае, процессы в screen запускаются и этого изменить нельзя. В самой программе можно ввести комманду stat и получить информацию о выполнении программы. А моя программа должна собирать информацию с таких-вот процессов.

uSide
() автор топика
Ответ на: комментарий от uSide

>Как? Написать терминал на C++, в котором можно было бы использовать скрипты из bash?

Терминал - средство ввода-вывода, а баш - сердце его

yoghurt ★★★★★
()
Ответ на: комментарий от uSide

Тебе это не нужно.

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

yoghurt ★★★★★
()
Ответ на: комментарий от uSide

В каком-то смысле да, есть же popen. Другое дело, с условиями в ОП, с уже запущенным приложением в скрине, врядли что-то выйдет :)

yoghurt ★★★★★
()

use fuse, pipes, unixs sockets, database, signals

visual ★★★
()
Ответ на: комментарий от uSide

В том случае если это малые программы(а не демоны) то банальным пайпом :)

Jetty ★★★★★
()
Ответ на: комментарий от power

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

В общем, дело обстоит так: Есть сервер counter-strike, демон (на сколько я понял). После основных задач по запуске модулей программы можно ввести в его stdin команду stat, а он в ответ - информацию о сервере.

Мне нужно программно получать эту информацию. При этом нужно учитывать, что работает сервер в screen (так сказали, изменить не могу).

uSide
() автор топика
Ответ на: комментарий от uSide

сильно не хотел тут отписываться, но раз все молчат, как нуб нубу

очевидно что сервер это вовсе не демон, потому ребята и запускают его в скрине

ты можешь написать программу, которая будет запускать сервер, открывая poepn'ы етц, тоесть имея возможность работать с ней «напрямую»

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

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

Эээ... Как может программа, которая постоянно включена и обслуживает одним процессом кучу запросов - не быть демоном? Или я не понимаю значения слова «демон»?

Вообще, идея-то хорошая. Только как я понял если упадёт моя программа, упадут и сервера?

uSide
() автор топика
Ответ на: комментарий от uSide

После основных задач по запуске модулей программы можно ввести в его stdin команду stat, а он в ответ - информацию о сервере.

Это же пайпы.

$ mkfifo in.fifo out.fifo
$ bc < in.fifo > out.fifo
$ echo "2+2" > in.fifo
после этого результат будет в out.fifo
$ cat out.fifo
4

power
()
Ответ на: комментарий от uSide

может быть не демоном придется сделать так что бы не падала, тебе же только 1 команду вводить и ответ получать, ну что все так плохо :)?

trashymichael ★★★
()
Ответ на: комментарий от unC0Rr

Большущее спасибо!!! Да и всем ответившим тоже!

uSide
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.