Как создать простой скрипт, чтобы убить 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 

  • Не удалось запустить запрошенную программу CGI: /www/cgi-bin/first.cgi: текстовый файл занят
  • Как я могу запустить sed для замены строк в файле или делать подобные вещи в PHP?
  • Отобразить имя хоста в статической HTML-странице на uhttpd
  • 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

    Как «rm» в файловой системе NTFS отличается от собственной реализации Windows?

    получить категории gmail на thunderbird

    Знание прав привилегий для файла в Linux

    vim редактирование / переключение между несколькими файлами эффективно в больших структурах каталогов

    Плохой дисплей utf8 с tmux

    Создание .deb с помощью службы systemd, но без скриптов инициализации SysV

    Было бы возможно, чтобы сетевая ссылка не была задействована при загрузке модуля ядра?

    socat отключить двойное эхо

    Получите количество файлов, которые соответствуют шаблону в каталоге, и удалите самый старый

    Неверный доступ к памяти PCI PASsthrough

    Как увеличить временное пространство в Fedora 20

    причина сбоя операции ввода-вывода файла = -1 EACCES (разрешение отклонено)

    Невозможно убить процесс sar

    Не удается загрузить Live USB Linux Mint DE на моем компьютере UEFI

    Чистый способ временно заменить файл конфигурации?

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