Аналогичный метод для /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 

  • У CentOS нет DefaultDepth
  • Проблемы с G3 для входа в систему CentOS 6.5
  • CentOS 7 не может очистить монтировку привязки с помощью rbind и rslave
  • Как восстановить файловую систему pam-auth?
  • Недавно установленный CentOS 6 показывает квадраты вместо букв
  • Не удается форматировать устройство / dev / sda4, которое все еще используется
  • Python 2.7 на CentOS 5
  • CentOS 7.1.1503 Минимальное значение не может установить Gnome Desktop через yum groupinstall "GNOME Desktop"
  • One Solution collect form web for “Аналогичный метод для /etc/init.d”

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

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

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