必须处理大师的开始和停止
一种可能的方式:
(作为运行大师的用户)
在运行 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
希望对你有帮助,祝你好运
顺便说一句:您可以在初始化脚本的开始部分添加检查大师是否已经在运行