<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.mipt.ru/index.php?action=history&amp;feed=atom&amp;title=Mod%2Fassign%2Ffeedback%2Feditpdf%2Ftestunoconv%2Finitd</id>
	<title>Mod/assign/feedback/editpdf/testunoconv/initd - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.mipt.ru/index.php?action=history&amp;feed=atom&amp;title=Mod%2Fassign%2Ffeedback%2Feditpdf%2Ftestunoconv%2Finitd"/>
	<link rel="alternate" type="text/html" href="http://wiki.mipt.ru/index.php?title=Mod/assign/feedback/editpdf/testunoconv/initd&amp;action=history"/>
	<updated>2026-05-06T20:50:59Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>http://wiki.mipt.ru/index.php?title=Mod/assign/feedback/editpdf/testunoconv/initd&amp;diff=9189&amp;oldid=prev</id>
		<title>Олег Давидович: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://wiki.mipt.ru/index.php?title=Mod/assign/feedback/editpdf/testunoconv/initd&amp;diff=9189&amp;oldid=prev"/>
		<updated>2024-10-18T06:55:00Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 06:55, 18 октября 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Олег Давидович</name></author>
	</entry>
	<entry>
		<id>http://wiki.mipt.ru/index.php?title=Mod/assign/feedback/editpdf/testunoconv/initd&amp;diff=9188&amp;oldid=prev</id>
		<title>1&gt;Cirano: Fix an error, The &quot;:&quot; character required in the end</title>
		<link rel="alternate" type="text/html" href="http://wiki.mipt.ru/index.php?title=Mod/assign/feedback/editpdf/testunoconv/initd&amp;diff=9188&amp;oldid=prev"/>
		<updated>2018-09-11T23:13:11Z</updated>

		<summary type="html">&lt;p&gt;Fix an error, The &amp;quot;:&amp;quot; character required in the end&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Init script example for unoconv on debian =&lt;br /&gt;
[[ mod/assign/feedback/editpdf/testunoconv | Back to unoconv installation ]]&lt;br /&gt;
&lt;br /&gt;
This script can be installed to /etc/init.d/unoconvd and then linked to system startup with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo update-rc.d unoconvd defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are planning to unoconv service for remote access as described [[ mod/assign/feedback/editpdf/testunoconv#Offload_processing_to_a_different_server | here ]], notice that it will be listening on localhost interface by default. To make it listen on the different network interface, you need to create &amp;lt;tt&amp;gt;/etc/default/unoconv&amp;lt;/tt&amp;gt; with a content below to override DAEMON_ARGS variable (use specific IP if you have more than one network interface, or 0.0.0.0 to listen on all of them):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Override arguments to make unoconv listening on network interface.&lt;br /&gt;
DAEMON_ARGS=&amp;quot;--listener -s 0.0.0.0&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is also recommended to add this to the root crontab as it is safe to run &amp;quot;sudo service unoconvd start&amp;quot; over and over (it will check if the process is running and start it if required). &lt;br /&gt;
&lt;br /&gt;
Crontab entry to check and start the process every 5 minutes. This version will print a message when unoconv is restarted so that an email will be sent by cron.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*/5 * * * * /usr/bin/service unoconvd status &amp;gt; /dev/null || (/usr/bin/service unoconvd start &amp;amp;&amp;amp; echo &amp;quot;Restarted crashed unoconv listener&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the script.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:          unoconvd&lt;br /&gt;
# Required-Start:    $remote_fs $syslog&lt;br /&gt;
# Required-Stop:     $remote_fs $syslog&lt;br /&gt;
# Default-Start:     2 3 4 5&lt;br /&gt;
# Default-Stop:      0 1 6&lt;br /&gt;
# Short-Description: Startup script for unoconvd listener&lt;br /&gt;
# Description:       Startup script for unoconvd listener. Allows starting/stopping/restarting and checking status of unoconvd listener.&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
# Author: Damyon Wiese &amp;lt;damyon@moodle.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Do NOT &amp;quot;set -e&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PATH should only include /usr/* if it runs after the mountnfs.sh script&lt;br /&gt;
PATH=/sbin:/usr/sbin:/bin:/usr/bin&lt;br /&gt;
DESC=&amp;quot;Unoconv listener for document conversions&amp;quot;&lt;br /&gt;
NAME=unoconv&lt;br /&gt;
DAEMON=/usr/bin/$NAME&lt;br /&gt;
DAEMON_ARGS=&amp;quot;--listener&amp;quot;&lt;br /&gt;
PIDFILE=/var/run/$NAME.pid&lt;br /&gt;
SCRIPTNAME=/etc/init.d/$NAME&lt;br /&gt;
APACHEUSER=www-data&lt;br /&gt;
&lt;br /&gt;
# Exit if the package is not installed&lt;br /&gt;
[ -x &amp;quot;$DAEMON&amp;quot; ] || exit 0&lt;br /&gt;
&lt;br /&gt;
# Read configuration variable file if it is present&lt;br /&gt;
[ -r /etc/default/$NAME ] &amp;amp;&amp;amp; . /etc/default/$NAME&lt;br /&gt;
&lt;br /&gt;
# Load the VERBOSE setting and other rcS variables&lt;br /&gt;
. /lib/init/vars.sh&lt;br /&gt;
&lt;br /&gt;
# Define LSB log_* functions.&lt;br /&gt;
# Depend on lsb-base (&amp;gt;= 3.2-14) to ensure that this file is present&lt;br /&gt;
# and status_of_proc is working.&lt;br /&gt;
. /lib/lsb/init-functions&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that starts the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_start()&lt;br /&gt;
{&lt;br /&gt;
	# Return&lt;br /&gt;
	#   0 if daemon has been started&lt;br /&gt;
	#   1 if daemon was already running&lt;br /&gt;
	#   2 if daemon could not be started&lt;br /&gt;
	start-stop-daemon --start --quiet --make-pidfile --background --pidfile $PIDFILE --exec $DAEMON --chuid $APACHEUSER --test &amp;gt; /dev/null \&lt;br /&gt;
		|| return 1&lt;br /&gt;
	status_of_proc &amp;quot;$DAEMON&amp;quot; &amp;quot;$NAME&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
	RETVAL=&amp;quot;$?&amp;quot;&lt;br /&gt;
	[ &amp;quot;$RETVAL&amp;quot; = 3 ] &amp;amp;&amp;amp; start-stop-daemon --start --quiet --make-pidfile --background --pidfile $PIDFILE --exec $DAEMON --chuid $APACHEUSER -- \&lt;br /&gt;
		$DAEMON_ARGS \&lt;br /&gt;
		|| return 2&lt;br /&gt;
	# Add code here, if necessary, that waits for the process to be ready&lt;br /&gt;
	# to handle requests from services started subsequently which depend&lt;br /&gt;
	# on this one.  As a last resort, sleep for some time.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that stops the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_stop()&lt;br /&gt;
{&lt;br /&gt;
	# Return&lt;br /&gt;
	#   0 if daemon has been stopped&lt;br /&gt;
	#   1 if daemon was already stopped&lt;br /&gt;
	#   2 if daemon could not be stopped&lt;br /&gt;
	#   other if a failure occurred&lt;br /&gt;
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME&lt;br /&gt;
	RETVAL=&amp;quot;$?&amp;quot;&lt;br /&gt;
	[ &amp;quot;$RETVAL&amp;quot; = 2 ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
	# Wait for children to finish too if this is a daemon that forks&lt;br /&gt;
	# and if the daemon is only ever run from this initscript.&lt;br /&gt;
	# If the above conditions are not satisfied then add some other code&lt;br /&gt;
	# that waits for the process to drop all resources that could be&lt;br /&gt;
	# needed by services started subsequently.  A last resort is to&lt;br /&gt;
	# sleep for some time.&lt;br /&gt;
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON&lt;br /&gt;
	[ &amp;quot;$?&amp;quot; = 2 ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
	# Many daemons don&amp;#039;t delete their pidfiles when they exit.&lt;br /&gt;
	rm -f $PIDFILE&lt;br /&gt;
&lt;br /&gt;
	/usr/bin/killall /usr/lib/libreoffice/program/soffice.bin&lt;br /&gt;
    &lt;br /&gt;
	return &amp;quot;$RETVAL&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that sends a SIGHUP to the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_reload() {&lt;br /&gt;
	#&lt;br /&gt;
	# If the daemon can reload its configuration without&lt;br /&gt;
	# restarting (for example, when it is sent a SIGHUP),&lt;br /&gt;
	# then implement that here.&lt;br /&gt;
	#&lt;br /&gt;
	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME&lt;br /&gt;
	return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Starting $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_start&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
		0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
		2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  stop)&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Stopping $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_stop&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
		0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
		2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  status)&lt;br /&gt;
	status_of_proc &amp;quot;$DAEMON&amp;quot; &amp;quot;$NAME&amp;quot; &amp;amp;&amp;amp; exit 0 || exit $?&lt;br /&gt;
	;;&lt;br /&gt;
  #reload|force-reload)&lt;br /&gt;
	#&lt;br /&gt;
	# If do_reload() is not implemented then leave this commented out&lt;br /&gt;
	# and leave &amp;#039;force-reload&amp;#039; as an alias for &amp;#039;restart&amp;#039;.&lt;br /&gt;
	#&lt;br /&gt;
	#log_daemon_msg &amp;quot;Reloading $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	#do_reload&lt;br /&gt;
	#log_end_msg $?&lt;br /&gt;
	#;;&lt;br /&gt;
  restart|force-reload)&lt;br /&gt;
	#&lt;br /&gt;
	# If the &amp;quot;reload&amp;quot; option is implemented then remove the&lt;br /&gt;
	# &amp;#039;force-reload&amp;#039; alias&lt;br /&gt;
	#&lt;br /&gt;
	log_daemon_msg &amp;quot;Restarting $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_stop&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
	  0|1)&lt;br /&gt;
		do_start&lt;br /&gt;
		case &amp;quot;$?&amp;quot; in&lt;br /&gt;
			0) log_end_msg 0 ;;&lt;br /&gt;
			1) log_end_msg 1 ;; # Old process is still running&lt;br /&gt;
			*) log_end_msg 1 ;; # Failed to start&lt;br /&gt;
		esac&lt;br /&gt;
		;;&lt;br /&gt;
	  *)&lt;br /&gt;
		# Failed to stop&lt;br /&gt;
		log_end_msg 1&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  *)&lt;br /&gt;
	#echo &amp;quot;Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
	echo &amp;quot;Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
	exit 3&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ mod/assign/feedback/editpdf/testunoconv | Back to unoconv installation ]]&lt;br /&gt;
&lt;br /&gt;
[[es:mod/assign/feedback/editpdf/testunoconv/initd]]&lt;br /&gt;
[[de:Init Skript für Debian]]&lt;/div&gt;</summary>
		<author><name>1&gt;Cirano</name></author>
	</entry>
</feed>