CentOS5.5はX環境込みでインストール済みとする
前回、CentOS5環境にSkypeを導入した
これを
http://d.hatena.ne.jp/moriyoshi/20100926/1285517353
http://yusukezzz.net/blog/archives/2006
を参考にデーモン化する
まず、必要なパッケージ、
仮想フレームバッファを提供するXvfbと、接続するためのx11vncの導入を行う
Xvfbはおそらく導入済み
x11vncは正規のレポジトリにないのでRPMForgeから導入
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# yum -y update rpmforge-release
# yum install x11vnc
スクリプトを用意する、上記サイトからlaunch-skype.sh#!/bin/bash
#
# Init file for daemonized Skype service
#
### BEGIN INIT INFO
# Provides: skype
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# X-Interactive: false
# Short-Description: Start/stop daemonized Skype service
### END INIT INFO
#
# chkconfig: 345 80 10
#
# processname: skype
#
# pidfile: /var/run/skype.pid
#
if [ -r /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
log_daemon_msg() {
msg=$1
prog=$2
echo -n $"$msg $prog: "
}
log_end_msg() {
if [ "$1" = "0" ]; then
success
elif [ "$1" = "1" ]; then
failure
fi
echo
}
elif [ -r /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
else
echo "Could not find a helper script needed to run this script."
exit 1
fi
DAEMON_USER=skype
PROGNAME=`basename $0`
PIDFILE=/var/run/skype.pid
XSERVERNUM=20
XAUTHFILE=/var/run/skype/Xauthority
LOGFILE=/var/log/skype/error.log
DBPATH=/srv/skype/conf
XAUTHPROTO=.
SKYPE=/opt/skype/skype
USERNAME=echo123
PASSWORD=blah
[ -f /etc/sysconfig/skype ] && . /etc/sysconfig/skype
prog="skype"
RETVAL=0
dircheck() {
if [ ! -d `dirname "$1"` ]; then
echo "`dirname \"$1\"` does not exist"
return 1
else
return 0
fi
}
start() {
log_daemon_msg "Starting" "skype"
if ! dircheck "$LOGFILE" || ! dircheck "$XAUTHFILE"; then
log_end_msg 1
echo
RETVAL=1
return
fi
MCOOKIE=`mcookie` && \
sudo -u "$DAEMON_USER" env XAUTHORITY=$XAUTHFILE sh -c "xauth add \":$XSERVERNUM\" \"$XAUTHPROTO\" \"$MCOOKIE\" >> \"$LOGFILE\" 2>&1" && \
sudo -u "$DAEMON_USER" env XAUTHORITY=$XAUTHFILE sh -c "Xvfb :$XSERVERNUM -screen 0 800x600x8 -nolisten tcp >> \"$LOGFILE\" 2>&1 & echo \$!" >"$PIDFILE" &&
sleep 3 && \
(sudo -u "$DAEMON_USER" env DISPLAY=:$XSERVERNUM XAUTHORITY=$XAUTHFILE SKYPE="$SKYPE" sh -c "echo \"$USERNAME $PASSWORD\" | nohup \"$SKYPE\" --dbpath=\"$DBPATH\" --pipelogin &") >> "$LOGFILE" 2>&1 && \
(log_end_msg 0 && [ -d /var/lock/subsys ] && touch /var/lock/subsys/skype || true) \
|| (RETVAL=$?; kill -TERM `cat $PIDFILE`; log_end_msg 1)
}
stop() {
log_daemon_msg "Stopping" "skype"
if [ -e "$PIDFILE" ]; then
kill -TERM `cat $PIDFILE` && \
rm -f $PIDFILE && \
if [ -d /var/lock/subsys ]; then rm -f /var/lock/subsys/skype; fi && \
log_end_msg 0 || log_end_msg 1
else
log_end_msg 1
RETVAL=1
fi
}
usage() {
echo "Usage: $PROGNAME {start|stop|restart}"
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
usage
RETVAL=255
;;
esac
exit $RETVAL
をダウンロードして/etc/init.d/skypeとして保存スクリプトで変更が必要なのは
DAEMON_USER :どのユーザーでSkypeを起動するか(root以外が望ましい)
DBPATH :どこに履歴等の情報を確保するか
USERNAME :どのSkypeアカウントでログインするか
PASSWORD :上記USERNAMEのアカウントのパスワード
DBPATHは、テスト運用時などに便利なので/home/user/.Skypeを指定するのがオススメ上記に加えて冒頭を
# chkconfig: 345 99 10 ←(変更)
# description: skype launch script←(追記)
# processname: skype
と編集また、スクリプトのために
/var/log/skype,/var/run/skypeをDAEMON_USERが読み書きできるように作成
さらに、DBPATHもDAEMON_USERが読み書きできるように作成
以上が終了したら
# chkconfig --add skype
# chkconfig skype on
# service skype start
で自動起動に登録して起動あとは、
# x11vnc -display :20 -xauth /var/run/skype/Xauthority
とした後に適当なVNCクライアントで接続、利用許諾へのサインや、必要なコンタクトを追加を行う
No comments:
Post a Comment