-2

显然我最初的问题是含糊不清或被解释为一个不好的问题。

我会再尝试。

有一个名为 volttron 的文件位于 volttron/scripts/admin/ ,其内容表明它是/曾经是 Volttron 守护程序从 init 启动的。我注意到它指的是 venv 之外的路径 (/var/lib/volttron) 为什么这个文件在那里?是否有计划对其进行修改?人们是否修改了这个文件以实现从init开始?是否有关于这个主题的文档?

自动初始化对于任何在计算机系统上提供服务的程序来说都是一个极其重要的特性。

我提供了一段代码。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          volttron
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $network $named
# Should-Start:      $network $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: VOLTTRON (TM) Daemon
# Description:       VOLTTRON (TM) agent execution platform.
### END INIT INFO

# Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="VOLTTRON (TM) agent execution platform"
NAME=volttron
USER=volttron
VLHOME=/var/lib/volttron
DAEMON_ARGS="-v -l $VLHOME/volttron.log"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
4

1 回答 1

1

假设您已在 var/lib 中安装了 VOLTTRON,则设置了此脚本(scripts/admin/volttron)。要将它用于您的环境,请将 VLHOME 编辑到您安装它的位置。例如:/home/volttronuser/git/volttron

使脚本可执行:chmod +x scripts/admin/volttron,然后将其复制到 /etc/init.d/

要使其随操作系统自动启动:

sudo update-rc.d volttron 默认值

要手动启动和停止它:

sudo service volttron start
sudo service volttron stop

查看状态:

sudo service volttron status

如果这要在部署的情况下使用,建议您编辑脚本以使用循环日志配置(或使用 http://www.linuxcommand.org/man_pages/logrotate8.html)。编辑脚本中的参数以在启动 VOLTTRON 时使用 -L 选项。这将使用旋转日志配置。

DAEMON_ARGS="-v -L $VLHOME/examples/rotatinglog.py"

您还需要编辑 examples/rotatinglog.py 以更改日志文件的位置。编辑“文件名”以指向您的用户有权写入的位置。

   'handlers': {
        'rotating': {
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'level': 'DEBUG',
            'formatter': 'agent',
            'filename': '/home/myuser/git/volttron/volttron.log',

注意:脚本的 cgroups 部分支持用于资源管理的 VOLTTRON 插件,没有它就不需要。这就是为什么它在脚本的 start 方法中被注释掉的原因。

于 2016-08-19T19:13:31.090 回答