LINUX.ORG.RU

как это сделать?

Как-нибудь сделай.

// С такими вводными другого ответа не будет.

есть скрипт

На чём скрипт? Bash? Python? Perl? JavaScript?

который, запускает сервер

Железный сервер? Сервер чего?

старт,стоп и рестарт

Проверить аргумент и на его основе выполнить действие по условию.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)

Мне нужно дописать в скрипте старт,стоп и рестарт,как это сделать?

Открываешь любой текстовый редактор и по клавиатуре тырк-тырк-тырк. Просто же.

IPR ★★★★★
()

Я сделал себе через переменные окружения:

#!/bin/bash
# start
tag=some_unique_id
TAG=$tag ./my_start_script.sh
#!/bin/bash
# stop
tag=some_unique_id
pid=$(grep -l "TAG=$tag" /proc/*/environ 2> /dev/null | cut -d/ -f3)
[ -z $pid ] && exit
kill $pid

Как-то так.

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

1.Bash 2.С гитхаба взял исходники и скомпилировал его.TCPServer Он запускается через терминал командой ./server port и мне нужно чтобы это было автоматически и я мог в любой момент отключить сервер или включить.

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

Я могу написать (вернее даже уже написал) такой скрипт (по сути имитирующий работу sysvinit), но подозреваю, что ты хочешь свалить на плечи форума свою работу (или лабораторную).

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

Хаха, щас допса в самом разгаре, а препод-сука допуск не ставит. Вот миха и кипишит

anonymous
()
Ответ на: комментарий от crutch_master

Да ну не, уже каникулы у всех.

Я учился так давно, что уже и не помню, что существуют каникулы, и когда они бывают.

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

Нет,я сам хочу сделать,я просто понятия не имею как это написать, я надеялся на то,что на форуме кто нибудь скинет пример или тип такого

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

пример

Напиши скрипт, который первым условием принимает start, stop или status:

case "${1}" in
  (start) /path/to/your/script ;;
  (stop) kill (PID процесса tcpserver) ;;
  (status) (здесь самая интересная часть, реализующаяся элементарно, если использовать pid-файлы) ;;
  (*) echo "unknown command" >&2; exit 1 ;;
esac

Про pid-файлы и локи тебе уже выше подсказали.

Можешь совместить свой скрипт запуска с этим скриптом.

Каждую задачу можешь запихать в функцию для более удобного использования.

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

и мне нужно чтобы .... я мог в любой момент отключить сервер

killall server

Он запускается через терминал командой ./server port... или включить

./server port

Не вариант? Во всяком случае это полностью соответствуем вашему ТЗ.

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

(status) (здесь самая интересная часть, реализующаяся элементарно, если использовать pid-файлы)
реализующаяся элементарно

Не-сме-шно. Если у вас процесс навернулся, файлик никуда не делся. Примеров такого костылестроения не то что «море» - «океан». Когда ориентируются на существование только файлика и не проверяют существование процесса. Один из примеров libvirt достаточно долго подобным грешил.

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

Если у вас процесс навернулся, файлик никуда не делся.

Потому я и написал, что самая интересная часть. На то и проверка статуса, чтобы проверять статус, а не просто печатать PID из PID-файла.

Когда ориентируются на существование только файлика и не проверяют существование процесса.

Без PID-файла выловить именно “свой” процесс среди нескольких запущенных экземпляров не представляется возможным, а с PID-файлом это делается действительно элементарно, и точно так же элементарно проверяется, жив ли процесс (а для особо придирчивых отмечу, что я учитываю, что нужно проверить, соответствует ли PID строке запуска приложения, которое мы чекаем).

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

Ну вот в таком изложении уже «ближе к правде», а не как вы сначала «наискосок» написали «реализующаяся элементарно».
ЗЫ Хотя и тут есть нюансы получения status, но это для более сложных вариантов. Для простого все верно. Большего не нужно.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

есть нюансы

Они всегда есть. И решать их надо по обстоятельствам (вон, в rc, sysvinit и остальных script-driven системах примеров полно).

Хотя и тут есть нюансы получения status, но это для более сложных вариантов.

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

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