1.Bash
2.С гитхаба взял исходники и скомпилировал его.TCPServer
Он запускается через терминал командой ./server port и мне нужно чтобы это было автоматически и я мог в любой момент отключить сервер или включить.
Я могу написать (вернее даже уже написал) такой скрипт (по сути имитирующий работу sysvinit), но подозреваю, что ты хочешь свалить на плечи форума свою работу (или лабораторную).
(status) (здесь самая интересная часть, реализующаяся элементарно, если использовать pid-файлы) реализующаяся элементарно
Не-сме-шно. Если у вас процесс навернулся, файлик никуда не делся. Примеров такого костылестроения не то что «море» - «океан». Когда ориентируются на существование только файлика и не проверяют существование процесса. Один из примеров libvirt достаточно долго подобным грешил.
Если у вас процесс навернулся, файлик никуда не делся.
Потому я и написал, что самая интересная часть. На то и проверка статуса, чтобы проверять статус, а не просто печатать PID из PID-файла.
Когда ориентируются на существование только файлика и не проверяют существование процесса.
Без PID-файла выловить именно “свой” процесс среди нескольких запущенных экземпляров не представляется возможным, а с PID-файлом это делается действительно элементарно, и точно так же элементарно проверяется, жив ли процесс (а для особо придирчивых отмечу, что я учитываю, что нужно проверить, соответствует ли PID строке запуска приложения, которое мы чекаем).
Ну вот в таком изложении уже «ближе к правде», а не как вы сначала «наискосок» написали «реализующаяся элементарно». ЗЫ Хотя и тут есть нюансы получения status, но это для более сложных вариантов. Для простого все верно. Большего не нужно.
Они всегда есть. И решать их надо по обстоятельствам (вон, в rc, sysvinit и остальных script-driven системах примеров полно).
Хотя и тут есть нюансы получения status, но это для более сложных вариантов.
Проблемы нужно решать по мере их поступления. Я не утверждаю, что это универсальный метод, но базу я описал, и исходя из этой информации уже можно плясать и в более сложные варианты.