巫女ブログ

問題提起:観測機の状態と、観測機の観測対象を同時に精度良く観測することは可能か。

ブートした時に自動でirssiをtmux内で実行したい

2011-10-21 19:59:30 | Weblog

ということをやった。

結構大変だった。

技術的気なポイントは3つで、

  1. 起動時に自動実行するスクリプトを作成
  2. tmuxを一般ユーザー権限で実行
  3. tmuxでirssiを起動してデタッチする

 

まず最初に、/etc/init.d/の中に任意のファイル名で、以下の内容のファイルを書きこんで、実行権限をつける。

#!/bin/sh
### BEGIN INIT INFO
# Provides:          irssiboot
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
sudo -u ユーザー名 tmux new-session -d  'irssi'
exit 0

ポイントは sudo -u hoge でhogeユーザーの権限でコマンドが実行できる。ちなみに、rootからsudoをする時に限ってはパスワードの入力は必要ないのでこのコマンドだけでいい。

次に、debianのランレベルはマルチユーザーモードのディフォルトは2なので/etc/rc2.d/の中に、先ほど作ったファイルへのシンボリックリンクを作る。今回はS12irssiと言う名前にした。

で、ブートした時に、上のスクリプトが実行される。