1

Ubuntu マシンにオープン ソース バージョンの virtuoso をインストールしました。私が直面している問題は、マシンを再起動するたびに名人を手動で再起動する必要があることです。私のマシンが virtuoso を自動的に起動できるようにする方法はありますか? のように、Tomcat を別のポートにインストールしました。マシンを再起動した後に Apache を再起動する必要はありません。この問題を修正するためにどこを変更すればよいか、誰にもわかりません。ありがとう

4

2 に答える 2

1

可能な方法で virtuos の開始と停止を処理する必要があります: (virtuoso を実行しているユーザーとして) 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 と VIRTUOSO_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

それが役に立てば幸いです

ところで:名人がすでに実行されているかどうかのチェックをinitスクリプトの開始部分に追加できます

于 2014-01-22T12:53:16.130 に答える
1

write a script like:

#!/bin/bash

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

(or any other configuration) save the script somewhere

enter the following into /etc/rc.local

openvt -s /path/to/your/script

after a restart this will automatically start your script in a new backround terminal (or what other term its called) usually after CTRL + ALT + F7 (your desktop) -> CTRL + ALT + F8

I hope I remembered this correctly and documented all steps (it's been a while).

Greetings

于 2014-01-22T09:24:57.350 に答える