【问题标题】:Manual restart issue with virtuosovirtuoso 的手动重启问题
【发布时间】:2014-01-14 19:33:02
【问题描述】:

我在我的 Ubuntu 机器上安装了 virtuoso 的开源版本。我面临的问题是,每次重新启动机器时,我都必须手动重新启动 virtuoso。有什么方法可以让我的机器自动启动 virtuoso?像,我在另一个端口安装了tomcat,我不需要在重启我的机器后重启Apache。有谁知道我可以在哪里进行更改以解决此问题。谢谢

【问题讨论】:

  • 对于它的价值,在 Virtuoso 用户的邮件列表中有 a recent question 关于在机器启动时获得一个 /etc/init.d 脚本来启动 virtuoso。我认为它还没有答案,但您可能想关注该主题。 (您可能还想尝试在该列表上提问。)

标签: rdf triplestore virtuoso


【解决方案1】:

编写如下脚本:

#!/bin/bash

sudo /usr/virtuoso-6.1.7/bin/virtuoso-t -fd +configfile /usr/virtuoso-6.1.7/bin/virtuoso.ini

(或任何其他配置) 将脚本保存在某处

在 /etc/rc.local 中输入以下内容

openvt -s /path/to/your/script

重新启动后,这将自动在新的后台终端(或其他术语)中启动您的脚本,通常在 CTRL + ALT + F7(您的桌面)-> CTRL + ALT + F8 之后

我希望我没记错并记录了所有步骤(已经有一段时间了)。

问候

【讨论】:

    【解决方案2】:

    必须处理大师的开始和停止 一种可能的方式: (作为运行大师的用户) 在运行 virtuoso 的用户的家中创建 bin 文件夹并添加以下脚本

    virtuosoStart.sh

    DBDIR=/vol0/virtuosodb
    VIRTUOSO_BIN=/opt/virtuoso7/bin/
    export PATH=$VIRTUOSO_BIN:$PATH
    cd $DBDIR
    virtuoso-t
    

    virtuosoStop.sh

    #!/bin/bash
    VIRTUOSO_BIN=/opt/virtuoso7/bin/
    ${VIRTUOSO_BIN}isql-v 1111 dba dba  -K
    

    请根据您的环境更改 DBDIR 和 VIRTOOSO_BIN

    (作为 root,“sudo su”或在每个命令前添加 sudo) 现在有必要在文件夹 /etc/init.d 中制作接受 start 和 stop 参数的脚本。

    cp skeleton virtuoso
    chmod a+x virtuoso
    

    您可以删除不必要的功能,并通过以下方式实现启停和状态操作:

    DESC="virtuoso server"
    NAME=virtuoso
    DAEMON=/opt/virtuoso7/bin/virtuoso-t
    # Exit if the package is not installed
    [ -x "$DAEMON" ] || exit 0
    DBDIR=/vol0/virtuosodb
    PIDFILE=${DBDIR}/virtuoso.lck
    SCRIPTNAME=/etc/init.d/$NAME
    USER=ubuntu
    START_SCRIPT=/home/${USER}/bin/virtuosoStart.sh
    STOP_SCRIPT=/home/${USER}/bin/virtuosoStop.sh
    
    case "$1" in
     start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        su -l $USER -c $START_SCRIPT
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
    stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        su -l $USER -c $STOP_SCRIPT
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
    status)
        if [ -f $PIDFILE ] && ps -p$(cut -d "=" -f 2 ${PIDFILE} ) > /dev/null;then
                log_success_msg "$NAME is running"
                exit 0
        else
                log_failure_msg "$name is not running"
                exit 1
        fi
       ;;
    *)
        echo "Usage: $SCRIPTNAME {start|stop|status}" >&2
        exit 3
        ;;
    esac
    

    现在必须将脚本链接添加到相应的 /etc/rc.x 文件夹。您可以手动完成,或者更好的方法是:

    update-rc.d virtuoso defaults
    

    希望对你有帮助,祝你好运

    顺便说一句:您可以在初始化脚本的开始部分添加检查大师是否已经在运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 2016-01-21
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多