diff --git a/conf/type/__init_script/gencode-remote b/conf/type/__init_script/gencode-remote
new file mode 100644
index 00000000..d212feb7
--- /dev/null
+++ b/conf/type/__init_script/gencode-remote
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# 2010-2011 Daniel Roth (dani-cdist@d-roth.li)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see .
+#
+#
+
+if [ -f "$__object/parameter/script" ]; then
+ script=$(cat "$__object/parameter/script")
+else
+ script="/$__object_id"
+fi
+
+if [ -f "$__object/parameter/base_dir" ]; then
+ base_dir=$(cat "$__object/parameter/base_dir")
+else
+ os="$(cat "$__global/explorer/os")"
+ case "$os" in
+ archlinux|netbsd|macosx|freebsd|openbsd) base_dir="/etc/rc.d" ;;
+ *) base_dir="/etc/init.d"
+ esac
+fi
+
+mode=$(cat "$__object/parameter/mode")
+
+echo "${base_dir}/${script} ${mode}"
diff --git a/conf/type/__init_script/man.text b/conf/type/__init_script/man.text
new file mode 100644
index 00000000..c33ff7b7
--- /dev/null
+++ b/conf/type/__init_script/man.text
@@ -0,0 +1,51 @@
+cdist-type__init_script(7)
+==========================
+Daniel Roth
+
+
+NAME
+----
+cdist-type__init_script - Use the init scripts
+
+
+DESCRIPTION
+-----------
+This type can be used to control your init scripts.
+
+
+REQUIRED PARAMETERS
+-------------------
+mode::
+ Specifies what shall be done with the init script (usually one of 'start'|'stop'|'restart'|'reload' or 'force-reload')
+
+
+OPTIONAL PARAMETERS
+-------------------
+script::
+ If supplied, use this as the init-script.
+ Otherwise the object_id is used.
+
+base_dir::
+ If supplied, this type uses this directory instead of '/etc/init.d'. The parameter will not need an ending slash.
+
+EXAMPLES
+--------
+
+--------------------------------------------------------------------------------
+# Reloads the configuration for lighttpd
+__init_script lighttpd --mode force-reload
+
+# Reloads the configuration for lighttpd
+__init_script lighty --script lighttpd --mode force-reload
+--------------------------------------------------------------------------------
+
+
+SEE ALSO
+--------
+- cdist-type(7)
+
+
+COPYING
+-------
+Copyright \(C) 2011 Daniel Roth. Free use of this software is
+granted under the terms of the GNU General Public License version 3 (GPLv3).
diff --git a/conf/type/__init_script/parameter/optional b/conf/type/__init_script/parameter/optional
new file mode 100644
index 00000000..5551a8f2
--- /dev/null
+++ b/conf/type/__init_script/parameter/optional
@@ -0,0 +1,2 @@
+script
+base_dir
diff --git a/conf/type/__init_script/parameter/required b/conf/type/__init_script/parameter/required
new file mode 100644
index 00000000..17ab372f
--- /dev/null
+++ b/conf/type/__init_script/parameter/required
@@ -0,0 +1 @@
+mode