시작 스크립트가 원할 때 시작되지 않습니다.

시작 스크립트가 원할 때 시작되지 않습니다.

/etc/init.d/따라서 다음 초기화 정보가 포함된 bash 스크립트가 있습니다 .

 ### BEGIN INIT INFO
# Provides:          minio server
# Required-Start:    $local_fs $remote_fs $mysql $all
# Required-Stop:     $remote_fs $syslog
# Default-Start:     5
# Default-Stop:      
# Short-Description: Start minio server that were running during shutdown
# Description:       Start minio server that were running during shutdown, wether unexpected or not
### END INIT INFO

이 스크립트를 실행하려면 mariadb가 필요하기 때문에 (제가 이해한 바에 따르면) 파일 헤더가 다음과 같기 때문에 mariadb가 시작되도록 해야 했지만 $mysql필수 시작 에 넣었습니다 .$allmysql

### BEGIN INIT INFO
# Provides:          mysql
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $network $named $time
# Should-Stop:       $network $named $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop the mysql database server daemon
# Description:       Controls the main MariaDB database server daemon "mysqld"
#                    and its wrapper script "mysqld_safe".
### END INIT INFO

따라서 스크립트는 이 데몬이 실행 중인지 확인합니다.

for seconds in {1..60}
do
    sleep 1
    find_pid=$(ps 'aux'| grep "sql")
    pid="${find_pid:5:25}"
    stringarray=($pid)
    pid=${stringarray[0]}

    find_pid=$(ps 'aux'| grep "sql")
    pid_two="${find_pid:5:25}"
    stringarray=($pid_two)
    pid_two=${stringarray[0]}

    if [ $pid == $pid_two]; then
        break
    fi
done
if [[ $seconds == 60 ]]; then
    echo "database not started yet" | tee -a /var/www/html/startup.log
fi

그러나 어떤 이유로 스크립트가 실행될 때 데이터베이스가 시작되지 않습니다. 이 문제를 해결하는 방법을 아는 사람이 있나요?

편집 : 나도 시도했다이것그런데 update-rc.d YOURAPP defaults링크에 제시된 대로 실행한 후에도 스크립트를 실행하면 데이터베이스가 시작되지 않습니다.

답변1

저장하는 init.d대신/etc/rc.local

예: /etc/rc.local을 연 다음

path_to_binary path_to_scipt

관련 정보