Просмотр исходного кода

Add example for Solaris SMF running

Jakob Borg 11 лет назад
Родитель
Сommit
58fe8b0cf1
2 измененных файлов с 61 добавлено и 0 удалено
  1. 13 0
      etc/solaris-smf/README.md
  2. 48 0
      etc/solaris-smf/syncthing.xml

+ 13 - 0
etc/solaris-smf/README.md

@@ -0,0 +1,13 @@
+This directory contains an example for running Syncthing under SMF on
+Solaris.
+
+ 1. Install the `syncthing` binary in a directory called `bin` in your
+    home directory.
+
+ 2. Edit the `syncthing.xml` file in the two places that refer to your
+    username and home directory; that is, replace `jb` with your actual
+    username and `/home/jb` with your actual home directory location.
+
+ 3. Load the service manifest, as a user with the appropriate rights.
+    `svccfg import syncthing.xml`.
+

+ 48 - 0
etc/solaris-smf/syncthing.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="syncthing">
+	<service name="site/syncthing" type="service" version="1">
+		<create_default_instance enabled="true"/>
+		<single_instance/>
+
+		<dependency name="network" grouping="require_all" restart_on="error" type="service">
+			<service_fmri value="svc:/milestone/network:default"/>
+		</dependency>
+
+		<dependency name="filesystem" grouping="require_all" restart_on="error" type="service">
+			<service_fmri value="svc:/system/filesystem/local"/>
+		</dependency>
+
+		<method_context>
+			<method_credential user="jb" group="other"/>
+		</method_context>
+
+		<exec_method type="method" name="start" exec="/home/jb/bin/syncthing" timeout_seconds="60">
+			<method_context>
+				<method_environment>
+                    <envvar name="HOME" value="/home/jb"/>
+					<envvar name="STNORESTART" value="1"/>
+				</method_environment>
+			</method_context>
+		</exec_method>
+		<exec_method type="method" name="stop" exec=":kill" timeout_seconds="60"/>
+
+		<property_group name="startd" type="framework">
+			<propval name="duration" type="astring" value="child"/>
+			<propval name="ignore_error" type="astring" value="core,signal"/>
+		</property_group>
+
+		<property_group name="application" type="application">
+		</property_group>
+
+		<stability value="Evolving"/>
+
+		<template>
+			<common_name>
+				<loctext xml:lang="C">
+					Syncthing
+				</loctext>
+			</common_name>
+		</template>
+	</service>
+</service_bundle>