Аналогичный метод для /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: VSFTPD не запускается
  • Перенос файлов из CentOS VM VirtualBox на хост-машину Windows
  • Как настроить сетевые интерфейсы настойчиво в CentOS, чтобы пережить перезагрузку?
  • Не удается найти каталог vgaswitcheroo в CentOS6
  • Модуль scsi_wait_scan не найден в CentOS kernel-ml вызывает панику ядра при загрузке
  • Уменьшите размер существующей VolumeGroup, чтобы создать новый PhysicalVolume
  • CentOS: совместное использование WLAN для доступа в Интернет
  • Будет ли графический интерфейс брандмауэра в CentOS перезаписывать изменения, внесенные с помощью руководства IPTABLES?
  • One Solution collect form web for “Аналогичный метод для /etc/init.d”

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

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

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