summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@also>2011-11-10 01:19:04 +0100
committertv <tv@also>2011-11-10 01:19:04 +0100
commit8ddd371557d626f6586282c3345e3a2a8f7ee487 (patch)
tree99f4574fec61ab0211078d63da0dfd9014850fc3
parent30ec5d0a41d162ebe89a5cff44e12f3153d21fe0 (diff)
//retiolum update: cp tinc-up and restart tincd
This commit updates /etc's tinc-up if it has changed and then restarts tincd. If tinc-up hasn't changed then only HUP and ALRM are sent to the retiolum tincd process.
-rw-r--r--retiolum/Makefile14
-rwxr-xr-xretiolum/bin/pgrep-retiolum-tincd-args2
-rwxr-xr-xretiolum/bin/restart-tincd14
-rwxr-xr-xretiolum/scripts/tinc_setup/install.sh2
4 files changed, 24 insertions, 8 deletions
diff --git a/retiolum/Makefile b/retiolum/Makefile
index a7fa500a..7528ddd2 100644
--- a/retiolum/Makefile
+++ b/retiolum/Makefile
@@ -12,18 +12,20 @@ hosts:
install: update
../punani/bin/punani -Eih tinc /usr/bin/python /usr/bin/python2
- @# will not run automatically
scripts/tinc_setup/install.sh
+ cp scripts/tinc_setup/tinc-up /etc/tinc/retiolum/tinc-up
scripts/autostart/create-startup.sh
update: hosts
- @echo creating Magic
bin/update_tinc_hosts "create magic" || true
- @echo adding hosts
bin/update_tinc_hosts restart
- @echo reloading tincd
- sudo pkill -HUP tincd || true
- sudo pkill -ALRM tincd || true
+ if ! diff scripts/tinc_setup/tinc-up /etc/tinc/retiolum/tinc-up; then \
+ sudo cp scripts/tinc_setup/tinc-up /etc/tinc/retiolum/tinc-up; \
+ sudo bin/restart-tincd; \
+ else \
+ sudo pkill -HUP tincd || :; \
+ sudo pkill -ALRM tincd || :; \
+ fi
arch-install: update install arch-autostart autohosts
diff --git a/retiolum/bin/pgrep-retiolum-tincd-args b/retiolum/bin/pgrep-retiolum-tincd-args
new file mode 100755
index 00000000..bd0bbc97
--- /dev/null
+++ b/retiolum/bin/pgrep-retiolum-tincd-args
@@ -0,0 +1,2 @@
+#! /bin/sh
+ps -e -o args | grep -E '(^|[ /])tincd +.* (-n +|--net=)retiolum'
diff --git a/retiolum/bin/restart-tincd b/retiolum/bin/restart-tincd
new file mode 100755
index 00000000..17d939d9
--- /dev/null
+++ b/retiolum/bin/restart-tincd
@@ -0,0 +1,14 @@
+#! /bin/sh
+set -xeuf
+
+PATH="$(dirname $(readlink -f "$0"))${PATH+:$PATH}"
+
+if args="`pgrep-retiolum-tincd-args`"; then
+ while $args --kill; do
+ sleep 1
+ done
+ $args
+else
+ echo "$0: there is no retiolum tincd process to restart" >&2
+ exit 23
+fi
diff --git a/retiolum/scripts/tinc_setup/install.sh b/retiolum/scripts/tinc_setup/install.sh
index d1b284ac..1cd7c81d 100755
--- a/retiolum/scripts/tinc_setup/install.sh
+++ b/retiolum/scripts/tinc_setup/install.sh
@@ -60,8 +60,6 @@ else
echo "own host file already exists! will not write again!"
fi
-cp $CURR/tinc-up /etc/tinc/$netname/
-
cat>tinc.conf<<EOF
Name = $myname
ConnectTo = EUcancER