Как создать простой скрипт, чтобы убить uhttpd, а затем запустить lighttpd?

У меня есть маршрутизатор, запускающий uhttpd по умолчанию, и есть процесс, использующий lighttpd я хотел бы запустить вместо этого. Поскольку оба процесса имеют один и тот же порт, я хотел бы убить uhttpd затем запустить lighttpd автоматически (путем установки скрипта, который содержит команды как задание cron которое выполняется при перезагрузке).

Когда я запускаю команды, я хотел бы войти в скрипт по отдельности, они работают. Когда я помещаю их в скрипт, я получаю сообщение об ошибке, сообщающее мне, что номер порта используется. Команды:

killall uhttpd

/etc/init.d/lighttpd start

Простой сценарий, который я имею до сих пор:

 #!/bin/sh killall uhttpd sleep 5 #To give the device time to release the port /etc/init.d/lighttpd start 

  • Отобразить имя хоста в статической HTML-странице на uhttpd
  • Не удалось запустить запрошенную программу CGI: /www/cgi-bin/first.cgi: текстовый файл занят
  • Как я могу запустить sed для замены строк в файле или делать подобные вещи в PHP?
  • One Solution collect form web for “Как создать простой скрипт, чтобы убить uhttpd, а затем запустить lighttpd?”

    Я не стал бы ждать 5 секунд и надеюсь, что это сработает, вы можете подождать слишком долго или слишком коротко. Вы можете использовать nc -z для проверки использования (по-прежнему) порта и выполнения следующих действий (я предполагаю, что они «сражаются» за порт 80):

     #!/bin/bash for i in $(seq 5); do if ! nc -z localhost 80; then break fi echo $i sleep 1 done if nc -z localhost 80; then killall -9 uhttpd sleep 1 fi if ! nc -z localhost 80; then /etc/init.d/lighttpd start else echo 'port not free' fi 

    Если после 5 раз ожидания процесс все еще не убит, выпустите его с большей силой и запустите lighttpd, только если порт свободен.

    Вы должны исследовать, перезагружает ли uhttpd (например, процесс, который запускает его в первую очередь). Возможно, у sleep 5 вы используете, uhttpd достаточно времени, чтобы перезапустить его (например, посмотрите на uhttpd процесса uhttpd перед запуском своего скрипта и после него).

    Interesting Posts

    su пользователь терпит неудачу с «grep: / var / cpanel / users / user: Permission denied»

    Мост lxc vs virtualbox

    Как заставить / dev / fd запускать сценарии оболочки в sudo safe?

    где Cron ищет двоичный почтовый ящик по умолчанию?

    Запуск 2 процесса сельдерея через cron

    Как отредактировать скрипт запуска shell-оболочки?

    не удалось выполнить резервное копирование данных с планшета Android на ноутбук с использованием tar!

    Абсолютно заключить в тюрьму пользователя с минимальными правами доступа к IP, файлу и командам

    Как создать зашифрованный контейнер (динамически расширяемый) на OpenBSD

    Невозможно установить расширенные атрибуты на ext4 на Fedora 22 – операция не поддерживается

    Идентификатор пользователя в модуле ядра

    Проблема KVM и свопа

    Как заставить recordmydesktop записывать звук приложения на Debian / Squeeze?

    libcanberra не может построить

    Монетный двор 14 не обнаруживает мой первый жесткий диск

    Linux и Unix - лучшая ОС в мире.