diff --git a/README.md b/README.md
index a8d838177dfca7d0e5c56459b6bb1f5521c4304d..febe62ead72553a9cd2c7d6c9eb50e49f07258c1 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,75 @@
 # onfilechange
 
+A Shell script that watches a given file or multiple files. 
+If one of the watched file changes then a given command will be exxecuted.
+It loops permanently; you need to stop it by Ctrl + C and/ or can
+use it as systemd watcher daemon.
+
+It uses stats for wide compatibility but prefers inotifywatch to
+check a file change.
+
+licence: Free software GNU GPL 3.0
+
+Source: https://git-repo.iml.unibe.ch/open-source/onfilechange
+
+
+## Installation
+
+* Copy the bash script somewhere you like.
+* set  execute permissions `chmod 0755 onfilechange.sh`
+
+## Usage
+
+```
+Parameters
+        -c [command]
+            command to execute on a file change
+        -f [filename(s)]
+            filenames to watch; separate multiple files with space and put all in quotes
+        -h
+            show this help
+        -i
+            force inotifywait command
+        -s
+            force stats command
+        -v
+            verbose mode; enable showing debug output
+        -w [integer]
+            for stats mode: wait time in seconds betweeen each test or on missing file; default: 5 sec
+
+```
+
+## Test on command line
+
+To make a test on commandline touch a testfile `touch /tmp/mytestfile`.
+The start the script with enabled debugging (-d) in a 2nd terminal:
+
+`/usr/local/bin/onfilechange.sh -v -f "/tmp/mytestfile" -c 'echo "hello"'`
+
+Each time you touch the testfile it should show "hello".
+
+## Use as systemd service
+
+In `/etc/systemd/system/` create a service config file **onfilechange-demo.service**
+
+```
+[Unit]
+Description=Onfilechange edemo
+Wants=multi-user.target
+
+[Service]
+ExecStart=/usr/local/bin/onfilechange.sh -f "/tmp/mytestfile" -c 'systemctl restart apache2'
+Restart=on-failure
+RestartSec=5s
+SyslogIdentifier=onfilechange
+User=root
+Group=root
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
+```
+
+
+Check if the service exists `systemctl status onfilechange-demo`. If so you can start and stop it with `systemctl [start|stop] onfilechange-demo`
+
diff --git a/onfilechange.sh b/onfilechange.sh
old mode 100644
new mode 100755