Аналогичный метод для /etc/init.d

Я установил свой сценарий для запуска с использованием метода /etc/init.d . Все работает хорошо. Проблема заключается в том, что мой сценарий выполняет захват пакетов, и когда он перезапускает машину после того, как скажет, что он загружен, он загружает этот скрипт и процесс захвата пакетов, о котором я думаю, начиная с этого момента, и он перестает двигаться дальше. Есть ли какой-нибудь метод, когда я могу заставить его только начать, когда Linux будет полностью загружен?

Ниже приведен пример моего сценария.

 #!/bin/bash # chkconfig: 2345 95 05 # myapp daemon # description: myapp daemon # processname: myapp DAEMON_PATH="/usr/local/bin/" DAEMON=pc1.c #DAEMONOPTS="-my opts" NAME=pc1.c DESC="my packet capture" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME case "$1" in start) printf "%-50s" "Starting $NAME..." insmod /usr/local/pfring/kernel/pf_ring.ko /usr/local/bin/pc1.c & $! > PIDFILE ;; status) if [ -f $PIDFILE]; then if [ -d /proc/cat $PIDFILE ]; then echo "Process is running"; fi; else echo "Error! PID file is missing!"; fi ;; stop) printf "%-50s" "Stopping $NAME" PID=`cat $PIDFILE` cd $DAEMON_PATH if [ -f $PIDFILE ]; then kill -HUP $PID printf "%s\n" "Ok" rm -f $PIDFILE else printf "%s\n" "pidfile not found" fi ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {status|start|stop|restart}" exit 1 esac и #!/bin/bash # chkconfig: 2345 95 05 # myapp daemon # description: myapp daemon # processname: myapp DAEMON_PATH="/usr/local/bin/" DAEMON=pc1.c #DAEMONOPTS="-my opts" NAME=pc1.c DESC="my packet capture" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME case "$1" in start) printf "%-50s" "Starting $NAME..." insmod /usr/local/pfring/kernel/pf_ring.ko /usr/local/bin/pc1.c & $! > PIDFILE ;; status) if [ -f $PIDFILE]; then if [ -d /proc/cat $PIDFILE ]; then echo "Process is running"; fi; else echo "Error! PID file is missing!"; fi ;; stop) printf "%-50s" "Stopping $NAME" PID=`cat $PIDFILE` cd $DAEMON_PATH if [ -f $PIDFILE ]; then kill -HUP $PID printf "%s\n" "Ok" rm -f $PIDFILE else printf "%s\n" "pidfile not found" fi ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {status|start|stop|restart}" exit 1 esac 

  • Control-C запускает выход из корня в bash
  • Остановка постфикса - сообщения помещаются в очередь, когда постфикс простаивает?
  • Как может выводиться уровень запуска «1 S»?
  • CentOS не видит USB-устройство
  • CentOS 7 - Когда THP отключен, можно ли игнорировать настройки дефрагментации?
  • Как установить CentOS 7 поверх Debian jessie удаленно?
  • Как клонировать сервер CentOS для виртуальной машины?
  • Добавление символа в имя файла
  • One Solution collect form web for “Аналогичный метод для /etc/init.d”

    Если вы запустите команду, которая запускается в вашем скрипте init.d с символом «&» после окончания команды, она станет фоновым процессом, и следующие службы могут запускаться.

    Если вы хотите, чтобы сценарий запускался как последний шаг (он все равно блокировал бы, если бы он не был фоновым) вашего процесса загрузки, вы могли запустить его через /etc/rc.local (или ваш эквивалент дистрибутива, если у вас его нет …)

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