Crontab在系统重启时没有运行shell脚本

问题描述 投票:0回答:1

所以我正在运行Ubuntu 16.04并尝试在启动时运行cronjob。如果我更改了@reboot * * * * *,我已确认脚本已运行。我也试图以不同的用户和root身份运行这个工作,但都没有工作。

当我为CRON grep系统日志时,我得到:

Feb 26 05:59:22 embarks1 cron[738]: (CRON) INFO (pidfile fd = 3)
Feb 26 05:59:22 embarks1 cron[738]: (CRON) INFO (Skipping @reboot jobs -- not system startup)

我的cronjob看起来像这样。 (文件名已更改)

@reboot /etc/init.d/example.sh

我无法弄清楚是什么或为什么。任何帮助,将不胜感激。

编辑1 -

这是我的init.d文件:


### BEGIN INIT INFO
# Provides:         StartJenkins
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1 0 6
# Short-Description: ...
# Description: ...
### END INIT INFO

APP_NAME="StartJenkins APP"
APP_DIR="~/Linux"

USER="ci"


USAGE="Usage: $0 {start}"

start_app() {
    echo "Starting $APP_NAME ..."
    su - $USER -c "cd $APP_DIR && ./startJenkins.sh"
}

case "$1" in
    start)
        start_app
    ;;

    *)
        echo $USAGE
        exit 1
    ;; 
linux ubuntu unix cron reboot
1个回答
-1
投票

1)使用以下内容创建/etc/init.d/example脚本:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          Example APP
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1 0 6
# Short-Description: ...
# Description: ...
### END INIT INFO

APP_NAME="Example APP"
APP_DIR="/path/to/example"

USER="example"
GROUP="example"

USAGE="Usage: $0 {start|stop|restart|status}"

start_app() {
    echo "Starting $APP_NAME ..."
    su - $USER -c "cd $APP_DIR && ./example"
}

stop_app() {
    echo "NOT IMPLEMENTED"
}

status_app() {
    echo "NOT IMPLEMENTED"
}

restart_app() {
    echo "NOT IMPLEMENTED"
} 

case "$1" in
    start)
        start_app
    ;;

    stop)
        stop_app
    ;;

    restart)
        restart_app
    ;;

    status)
        status_app
    ;;

    *)
        echo $USAGE
        exit 1
    ;;
esac

或者干脆:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          Example APP
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1 0 6
# Short-Description: ...
# Description: ...
### END INIT INFO

APP_NAME="Example APP"
APP_DIR="/path/to/example"

USER="example"
GROUP="example"

USAGE="Usage: $0 {start}"

start_app() {
    echo "Starting $APP_NAME ..."
    su - $USER -c "cd $APP_DIR && ./example"
}

case "$1" in
    start)
        start_app
    ;;

    *)
        echo $USAGE
        exit 1
    ;;
esac

2)给出默认值并启用:

cd /etc/init.d
chmod +x example
update-rc.d example defaults
update-rc.d example enable
© www.soinside.com 2019 - 2024. All rights reserved.