Volttron 初始化守护进程
Volttron init daemon
显然我最初的问题含糊不清或被解释为一个错误的问题。
我再试试
有一个名为 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
此脚本 (scripts/admin/volttron) 是在假设您已在 var/lib 中安装 VOLTTRON 的情况下设置的。要将它用于您的环境,请将 VLHOME 编辑到您安装它的位置。例如:/home/volttronuser/git/volttron
使脚本可执行:chmod +x scripts/admin/volttron,然后将其复制到 /etc/init.d/
使用 OS 使其自动启动:
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 以更改日志文件的位置。编辑 "filename" 以指向您的用户有权写入的位置。
'handlers': {
'rotating': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'level': 'DEBUG',
'formatter': 'agent',
'filename': '/home/myuser/git/volttron/volttron.log',
注意:
脚本的 cgroups 部分支持用于资源管理的 VOLTTRON 插件,没有它就不需要了。这就是为什么它在脚本的启动方法中被注释掉的原因。
显然我最初的问题含糊不清或被解释为一个错误的问题。
我再试试
有一个名为 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
此脚本 (scripts/admin/volttron) 是在假设您已在 var/lib 中安装 VOLTTRON 的情况下设置的。要将它用于您的环境,请将 VLHOME 编辑到您安装它的位置。例如:/home/volttronuser/git/volttron
使脚本可执行:chmod +x scripts/admin/volttron,然后将其复制到 /etc/init.d/
使用 OS 使其自动启动:
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 以更改日志文件的位置。编辑 "filename" 以指向您的用户有权写入的位置。
'handlers': {
'rotating': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'level': 'DEBUG',
'formatter': 'agent',
'filename': '/home/myuser/git/volttron/volttron.log',
注意: 脚本的 cgroups 部分支持用于资源管理的 VOLTTRON 插件,没有它就不需要了。这就是为什么它在脚本的启动方法中被注释掉的原因。