mod / assign / feedback / editpdf / testunoconv / initd

debian上のunoconvのinitスクリプト例

unoconvインストールに戻る

このスクリプトは/etc/init.d/unoconvdにインストールしてから、次のコマンドでシステムの起動にリンクさせることができます。

sudo update-rc.d unoconvdのデフォルト

ここで説明されているようにリモートアクセスのためにunoconvサービスを行うことを計画しているなら、それはデフォルトでlocalhostインターフェースでlistenしていることに注意してください。別のネットワークインタフェースでリッスンするようにするには、以下の内容で/ etc / default / unoconvを作成し、DAEMON_ARGS変数を上書きする必要があります(複数のネットワークインタフェースがある場合は特定のIPを使用します。それら):

#引数を上書きして、unoconvがネットワークインターフェースをリスンするようにします。
DAEMON_ARGS = " - リスナー-s 0.0.0.0"

"sudo service unoconvd start"を何度も実行しても安全なので、これをrootのcrontabに追加することもお勧めします(プロセスが実行中かどうかを確認し、必要に応じて起動します)。

5分ごとにプロセスをチェックして開始するためのCrontabエントリ。このバージョンでは、unoconvが再起動されるとメッセージが表示され、電子メールがcronによって送信されます。

* / 5 * * * * / usr / bin / service unoconvdステータス> / dev / null || (/ usr / bin / service unoconvd start && echo "再起動クラッシュしたunoconvリスナー")

これがスクリプトです。

#! / bin / sh
### BEGIN INIT情報
#提供:unoconvd
#必須 - 開始:$ remote_fs $ syslog
#必須 - 停止:$ remote_fs $ syslog
#デフォルト - 開始:2 3 4 5
#デフォルト停止:0 1 6
#簡単な説明:unoconvdリスナー用の起動スクリプト
#説明:unoconvdリスナー用の起動スクリプト。 unoconvdリスナーの起動/停止/再起動およびステータスの確認を許可します。
### END INIT情報

#作者:Damyon Wiese <damyon@moodle.com>

# "set -e"しないでください

#PATHは、/ usr / *をmountnfs.shスクリプトの後に実行する場合にのみ含める必要があります。
パス= / sbin:/ usr / sbin:/ bin:/ usr / bin
DESC = "ドキュメント変換用のUnoconvリスナー"
NAME = unoconv
DAEMON = / usr / bin / $ NAME
DAEMON_ARGS = " - リスナー"
PIDFILE = / var / run / $ NAME.pid
SCRIPTNAME = / etc / init.d / $ NAME
APACHEUSER = www-data

#パッケージがインストールされていない場合は終了します
[-x "$ DAEMON"] || 0番出口

#設定変数ファイルが存在する場合はそれを読み込む
[-r / etc / default / $ NAME] &&。 / etc / default / $ NAME

#VERBOSE設定と他のrcS変数をロードする
。 /lib/init/vars.sh

#LSB log_ *関数を定義します。
#このファイルが存在することを確認するためにlsb-base(> = 3.2-14)に依存
#とstatus_of_procは機能しています。
。 / lib / lsb / init-functions

#
#デーモン/サービスを起動する機能
#
do_start()
{
	#戻る
	デーモンが起動されている場合#0
	デーモンがすでに実行されている場合は#1
	#2デーモンが起動できなかった場合
	start-stop-daemon --start --quiet --make-pidfile --background --pidfile $ PIDFILE --exec $ DAEMON --chuid $ APACHEUSER --test> / dev / null \
		|| 1を返す
	status_of_proc "$ DAEMON" "$ NAME"> / dev / null
	RETVAL = "$?"
	["$ RETVAL" = 3] && start-stop-daemon --start --quiet --make-pidfile --background --pidfile $ PIDFILE --exec $ DAEMON --chuid $ APACHEUSER  -  \
		$ DAEMON_ARGS \
		|| 2を返す
	#必要に応じて、プロセスの準備が整うのを待つコードをここに追加します。
	#その後に開始されたサービスからの要求を処理する
	これで#。最後の手段として、しばらくの間眠ります。
}

#
#デーモン/サービスを停止する機能
#
do_stop()
{
	#戻る
	デーモンが停止している場合は0
	デーモンがすでに停止している場合は#1
	#2デーモンが停止できなかった場合
	#障害が発生した場合はその他
	start-stop-daemon --stop --quiet --retry = TERM / 30 / KILL / 5 --pidfile $ PIDFILE --name $ NAME
	RETVAL = "$?"
	["$ RETVAL" = 2] && return 2
	#これがフォークするデーモンである場合は、子供たちも終了するのを待ちます。
	#そしてデーモンがこのinitscriptから実行されるだけの場合。
	#上記の条件が満たされない場合は、他のコードを追加してください。
	#プロセスが、実行される可能性のあるすべてのリソースを削除するのを待ちます。
	サービスが必要とする#は、その後開始されます。最後の手段は
	#しばらく寝ます。
	start-stop-daemon --stop --quiet --oknodo --retry = 0/30 / KILL / 5 --exec $ DAEMON
	["$?" = 2] && return 2
	#多くのデーモンは、終了時にpidファイルを削除しません。
	rm -f $ PIDFILE

	/ usr / bin / killall /usr/lib/libreoffice/program/soffice.bin
    
	"$ RETVAL"を返す
}

#
#SIGHUPをデーモン/サービスに送信する機能
#
do_reload(){
	#
	#デーモンがなしで設定をリロードできる場合
	#再起動中(SIGHUPが送信されたときなど)
	#それからそれをここで実装する。
	#
	start-stop-daemon --stop --signal 1 --quiet --pidfile $ PIDFILE --name $ NAME
	0を返す
}

「$ 1」の場合
  開始)
	["$ VERBOSE"!= no] && log_daemon_msg "$ DESCの開始" "$ NAME"
	do_start
	"$?"の場合に
		0 | 1)["$ VERBOSE"!= no] && log_end_msg 0 ;;
		2)["$ VERBOSE"!= no] && log_end_msg 1 ;;
	エサック
	;;
  やめる)
	["$ VERBOSE"!= no] && log_daemon_msg "$ DESCの停止" "$ NAME"
	do_stop
	"$?"の場合に
		0 | 1)["$ VERBOSE"!= no] && log_end_msg 0 ;;
		2)["$ VERBOSE"!= no] && log_end_msg 1 ;;
	エサック
	;;
  状態)
	status_of_proc "$ DAEMON" "$ NAME" &&終了0 || $を終了しますか?
	;;
  #reload | force-reload)
	#
	#do_reload()が実装されていない場合は、これをコメントアウトしたままにしてください。
	#そして 'force-reload'を 'restart'のエイリアスとして残します。
	#
	#log_daemon_msg "$ DESCのリロード" "$ NAME"
	#do_reload
	#log_end_msg $?
	#;;
  再起動|強制リロード)
	#
	# "reload"オプションが実装されている場合は、それを削除します。
	# 'force-reload'エイリアス
	#
	log_daemon_msg "$ DESCの再起動" "$ NAME"
	do_stop
	"$?"の場合に
	  0 | 1)
		do_start
		"$?"の場合に
			0)log_end_msg 0 ;;
			1)log_end_msg 1 ;; #古いプロセスはまだ実行中です
			*)log_end_msg 1 ;; # 起動に失敗しました
		エサック
		;;
	  *)
		#停止に失敗しました
		log_end_msg 1
		;;
	エサック
	;;
  *)
	#echo "使用方法:$ SCRIPTNAME {start | stop | restart | reload | force-reload}">&2
	echo "使用方法:$ SCRIPTNAME {start | stop | status | restart | force-reload}">&2
	3番出口
	;;
エサック

:

unoconvインストールに戻る