所以我正在运行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
;;
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