С++ после явы это настоящий вынос мозга. А было дело так.
Дали мне партзадание развернуть дополнительный сервер NIS. Ну сказано - сделано. Сервер я поднял, все настроил... но стала задача синхронизировать между ними карты. Как оказалось для этого существует спец програма /usr/lib/ypxfr.
Но! запускать ее нужно вручную, указывая ее в качестве параметра имя карты, ну или через крон. И вот с этого момента эта идея перестала мне нравиться. Как говориться у семи нянек сами знаете сколько сисек, поэтому нужно автоматическое, ну или хотя бы полу-автоматическое обновление карт. Сервер для этого выделили ужасающе беспощадно мощный: 2хPIII - по 800Мгц, 1Гб оперативки и три 36Гб диска. Так что ява автоматически отпадает.
Принцип я придумал дледующий: после пересборки карт на мастер сервере запускаеться (пока) скриптик, который стучит на порт слейв серверу, на котором в свою очередь курутиться служба, которая запустает этот самый ypxfr. Ну и в завершение идеи нужен демон, а не простое приложение, т.к. возиться с nohup вобще не хочеться. Погуглив, наткнулся на очень интересный документ Linux Daemon Writing HOWTO на основании которого я и написал ydpdater.
В двух словах о демонах для Linux - нужно сначала сделать fork() для процесса, а потом закрыть все его потоки. Ну а дальше, как говориться, big loop.
Немає коментарів:
Дописати коментар