- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
TLDR; Is it possible to create a cron job that runs service service_name start? How?
sudo crontab -e
45 23 * * * service bormarise_celery_daemon start
service bormarise_celery_daemon start
start: Job is already running: bormarise_celery_daemon
bormarise_celery_daemon: unrecognized service
最佳答案
tl;博士
您需要添加 /sbin
到 cron 的 PATH
所以service
脚本可以找到initctl
.为此,请在 crontab 的顶部添加这样的定义:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
cron
的问题自
initctl
给您发电子邮件如果您尝试启动的作业已在运行,则以状态 1(失败)退出。你可以用类似的方法解决这个问题:
45 23 * * * service bormarise_celery_daemon status | grep -q running || service bormarise_celery_daemon start
bormarise_celery_daemon
时才尝试运行 start 命令。服务没有运行。
service
命令尝试管理 Upstart 作业,它不是实际的 Upstart 控制功能——应该是
initctl
以及相关的速记命令套件(即
start
、
stop
等)。所有的 Upstart 脚本都位于
/sbin/
.
service
command 试图促进人们在 Upstart 和经典的 SysV 样式脚本之间传播服务。这样您就可以使用一个界面(
service
脚本)来管理来自两个系统的服务。
service
的实际来源脚本(它只是一个 Bash 脚本)在 Ubuntu 14.04 上,你会看到:
if [ -r "/etc/init/${SERVICE}.conf" ] && which initctl >/dev/null \
&& initctl version | grep -q upstart
then
# Upstart configuration exists for this job and we're running on upstart
case "${ACTION}" in
start|stop|status|reload)
# Action is a valid upstart action
exec ${ACTION} ${SERVICE} ${OPTIONS}
;;
restart)
# Map restart to the usual sysvinit behavior.
stop ${SERVICE} ${OPTIONS} || :
exec start ${SERVICE} ${OPTIONS}
;;
force-reload)
# Upstart just uses reload for force-reload
exec reload ${SERVICE} ${OPTIONS}
;;
esac
fi
bormarise_celery_daemon
)是否是 Upstart 作业。 Upstart 职位进入 /etc/init/
与 .conf
延期。 service
脚本将检查它是否可以运行 initctl
. service
然后脚本将确保 initctl
是一个足够新的版本。 service
脚本将尝试使用适当的
initctl
命令来运行 Upstart 作业。例如:
service bormarise_celery_daemon start
start bormarise_celery_daemon
initctl start bormarise_celery_daemon
service
script 假定您正在尝试运行 SysV 样式的脚本。这些只是位于
/etc/init.d/
中的 Bash 脚本.但是,如果不存在这样的脚本,它将以
unrecognized service
退出。错误信息。
PATH
对于 cron 仅包含
/bin/
和
/usr/bin/
.这意味着它不包括
/sbin/
这是
initctl
的地方可执行文件是。
这意味着 cron
将无法运行 initctl
.
cron
运行您的 crontab,
service
脚本
是 能够找到你的 Upstart 工作,但它是
不是 能够运行
initctl
命令,因此它跳过尝试通过 Upstart 运行您的服务(即
initctl
)。相反,它会尝试在
/etc/init.d/
中寻找 SysV 风格的脚本。 .由于该脚本不存在,
service
脚本放弃并打印您的错误消息。
cron
的默认
PATH
其中一个包括
/sbin/
,然后是
service
脚本将能够找到
initctl
并将尝试启动您的 Upstart 工作。
service
脚本仅检查是否存在 Upstart 作业,忽略
initctl
检查。这意味着如果你在 Ubuntu 12.04 上尝试这个,它会尝试使用 Upstart 来启动你的服务。但是,如果
/sbin/
不在路径上,它会失败并显示(稍微)更易理解的错误消息:
/usr/bin/service: 123: exec: start: not found
关于linux - Upstart 的 "service start"可以在 cron 作业中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129348/
我正在使用 choronos,它建议使用 start/stop 命令开始停止,如下所示 开始计时 停止计时 但是,我正在编写 puppet manifest,它只适用于下面的服务命令。 服务计时开始
来历及作用 services.exe进程程序文件是由微软公司为其发布的Windows操作系统定义的一个系统进程,常见于Windows 2000/XP/Vista/2007等系统中,被描述为服务和控
我一直在尝试使用installutil:installutil /u GSIS.FileMoverService.exe安装Windows服务。 我得到的输出是: Uninstalling assem
如果一个域有多个团队和多个 Web 应用程序,那么注册 Service Worker 来管理整个站点的最佳建议是什么?具有范围的顶级服务 worker /或子域中的多个服务 worker ?由于一个域
我已经在 eclipse 中创建了企业项目。动态web项目和ejb项目对企业项目有借鉴意义。当我运行管理员(企业项目)运行时选择 wildfly 服务器 18。我收到以下错误。谁能告诉我我错过了什么。
我已经使用 apache-cxf-2.7.4 创建了一个 Web 服务。我进入了我的项目中制作的类(class)。我的项目中的库是: math3-commons-3.2.jar XStream-1.4
我在域中的 Virtual Box 中运行集群计算机,默认情况下服务在 Network 服务下运行,服务一直停止,事件日志中出现以下错误。 请从下面的错误日志中查找错误详细信息。任何帮助都会很棒。 L
在我的应用程序中,用户可以在 map 上发布事件。应用程序的入口点是一个无状态的 web api 服务。为了在内部代表用户,我想要一个用户服务。我应该何时使用 Reliable Stateful Ac
当我尝试运行在WIX中创建的安装程序时,出现以下错误消息: “服务'Report Generator Service'(报告生成器服务)无法启动。请验证您是否具有启动系统服务的足够特权”。 我已经在这
尝试使用 cloudformation 创建 ECS 服务(在 Fargate 上)但出现错误: Invalid service in ARN (Service: AmazonECS; Status
我正在编写一个简单的Windows服务,该服务每个月向所有员工发送一封电子邮件。我的问题是,完成后如何停止自我?我是该领域的新手,请帮帮我。非常感谢。 它将部署在服务器上以每月运行。我没有开始做这件事
有谁知道是否有办法在 service worker 中获取此号码或日期: 将我的服务 worker 缓存命名为 cache-1182 会很方便或 cache-20171127171448 我想在安装事
我想开始使用 Azure Service Fabric 技术。 我按照this document工作并安装最新的SDK。安装后,我打开 PowerShell(“以管理员身份运行”)命令行窗口并写入这些
我在使用 whenever gem 时遇到了一些问题。我创建了一个 rake 任务,当我自己启动它时它工作得很好但是当我在日志中收到以下消息时尝试自动执行它: ActiveRecord::Statem
我想在 service fabric 集群中为两个不同的 web 应用程序(webpi/website)共享 http/80 端口,应用程序必须有 2 个不同的主机名: mywebapi.com 和
我创建了一个使用 MongoDB 实现 hibernate OGM 的应用程序。它在 Eclipse 中运行得很好,但是,当我构建一个 fat jar 并尝试运行它时,出现以下错误: Exceptio
我有一个 Selenium Python 测试套件。它开始运行,但几分钟后抛出以下错误: Exception AttributeError: "'Service' object has no attr
我按照此链接的说明进行操作:https://www.thegeekdiary.com/centos-rhel-7-how-to-make-custom-script-to-run-automatica
我在 ubuntu 下的 jboss 上部署了简单的“HelloWorld”Web 服务。 我创建了简单的客户端,但我无法让它工作。每次运行客户端时,我都会收到 NullPointerExceptio
我正在尝试为我的网站使用后台定期同步。我正在使用 localhost 并在 1*1000 毫秒时注册 periodicsync 事件,但这根本不会触发。 我看过这个demo ,但即使我将该网站安装为应
我是一名优秀的程序员,十分优秀!