【问题标题】:Scheduling an UpStart init script via crontab通过 crontab 调度 UpStart 初始化脚本
【发布时间】:2014-11-14 05:08:30
【问题描述】:

我在/etc/init/ Ubuntu 中创建了以下ProcessRunner.conf

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Essentially lets upstart know the process will detach itself to the background
expect fork

# Run before process
pre-start script
    [ -d /var/run/ProcessRunner ] || mkdir -p /var/run/ProcessRunner
    java -Dlog4j.configuration=log4j_process1.xml -classpath /home/devuser/apps/ProcessExecutor:/home/devuser/apps/ProcessExecutor/ProcessExecutor-1.0.jar com.process.ApplicationStartup &
    echo $! > /var/run/ProcessRunner/ProcessRunner.pid;
end script

post-stop script
     processid=$(cat /var/run/ProcessRunner/ProcessRunner.pid);
     if ps -p $processid > /dev/null
        then
        sudo kill -9 $processid;
     fi;
end script

我使用以下命令从命令行启动/停止它:

sudo start ProcessRunner
sudo stop ProcessRunner

它工作正常。现在我需要安排这些。我这样做了:

我使用以下命令从命令行启动/停止它:

$sudo crontab -e

0 0 * * * * start ProcessRunner
0 2 * * * * stop ProcessRunner

但这不起作用。请帮忙。 另外,我不希望这个过程在系统启动时开始。我该如何配置?

【问题讨论】:

  • Crontab 环境不提供路径,因此命令 (start ProcessRunner) 必须包含完整路径
  • @RaulAndres 如果它是一个 shell 脚本,我会提供一个绝对路径。但这是一个响应启动/停止命令的 UpStart 脚本。我可以为此提供什么路径?

标签: linux shell ubuntu crontab upstart


【解决方案1】:

Crontab 环境不提供路径,因此命令(启动 ProcessRunner)必须包含完整路径。

命令“start”和“stop”的完整路径,而不是你的新贵配置文件!

所以,基本上,你的 crontab 应该是这样的:

0 0 * * * * /sbin/start ProcessRunner
0 2 * * * * /sbin/stop ProcessRunner

【讨论】:

  • 我会试试的。我不知道 start,stop 命令的绝对路径是什么。
猜你喜欢
  • 2012-06-10
  • 2014-08-09
  • 1970-01-01
  • 2012-06-01
  • 2018-11-05
  • 2012-02-02
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多