読者です 読者をやめる 読者になる 読者になる

シェルからXvfbとskypeをバックグラウンドで起動する

メモ。
moriyoshiさんのSkype起動のスクリプトを参考に。コマンドからユーザ名とパスワードとディスプレイ番号を指定して起動できるようにスクリプトを作成。
Linux上で動くSkype用のbotを作る方法 - muddy brown thang

launch_skype.sh

#!/bin/bash

USERNAME=$1
PASSWORD=$2
DAEMON_USER=skype
PROGNAME=`basename $0`
PIDFILE=/var/run/skype/$USERNAME.pid
XSERVERNUM=$3
XAUTHFILE=/var/run/skype/Xauthority
LOGFILE=/var/log/skype/error.log
DBPATH=/srv/skype/conf
XAUTHPROTO=.
SKYPE=/usr/bin/skype


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

用意

Skypeのインストールは過去に書いた記事通りで、バージョンが上がった以外は特に問題なし。
Ubuntu ServerにSkypeをインストールする - 偏った言語信者の垂れ流し

実行

$ sudo ./launch_skype.sh username password display