Главное выбирает язык. В каком языке это будет выполнено? Если Вы действительно хотите работать на каком-либо дистрибутиве Linux, Вы могли бы записать это в Python. Любое приложение Python, которое будет работать на Linux, будет (в основном) работать на любом дистрибутиве Linux с 0 модификациями.
Python также имеет действительно хороший GTK и спокойные редакторы связей. Я никогда не работал с gtk, но PyQt является действительно большим работать с.
Преимущества для Python - то, что Вы не должны будете, вероятно, компилировать расширения (он полностью зависит от того, что Вы пишете все же. Даже если Вы действительно должны, это довольно легко.) и у Вас также есть большой источник распределения через pypi. Установка программ Python оттуда обычно еще легче, чем хранилище пакетов дистрибутива.
Очевидное решение состояло бы в том, чтобы перенаправить вывод приложения в файл и посмотреть на тот файл:
nohup application >app.log & # on the server
ssh server tail -n +1 -f app.log # on the client
Если приложение должно иметь свой вывод в терминале, выполнить его на экране.
На сервере:
screen -S somename -Rrd
application
нажмите Ctrl+A D для “отсоединений” от экранной сессии, оставив его работающий в фоновом режиме
От клиента:
ssh server
screen -S somename -Rrd
снова соединяться с экранной сессией
Если Вы хотите, чтобы сообщения были зарегистрированы автоматически, лучший способ состоит в том, чтобы использовать стандартное средство журнала. Можно принять меры, чтобы записи в журнале были отправлены на другие машины, или грубо с большинством основных системных журналов, или с лучшей фильтрацией и диспетчеризацией опций с rsyslog.
Я ищу решение, которое действительно должно запустить сервер специальным способом, потому что я не, позволяют запускать программу и не может даже остановить и перезапустить в специальной среде. Кто-то запускает программу на сервере, и я должен проверить вывод сообщений в терминал, когда существуют проблемы. Какая-либо идея, как достигнуть?
Я думаю, что в этом случае лучше, чем вывод перенаправления в файл перенаправление это к именованному каналу (первым прибыл, первым обслужен), потому что нет никакой потребности хранить все данные на диске. Если программа производит большой вывод, у нас могло бы закончиться дисковое пространство.
Вместо стандартного, конвейера оболочки без имени именованный конвейер использует файловую систему. Это явно создается с помощью mkfifo () или mknod (), и два отдельных процесса могут получить доступ к каналу по имени — один процесс может открыть его как читателя и другой как устройство записи.
mkfifo /path/to/my/pipe
someprogram > /path/to/my/pipe
tail -f /path/to/my/pipe
Если Вы хотите произвести его также к stdout, Вы могли бы использовать tee
:
someprogram | tee /path/to/my/pipe