Selaa lähdekoodia

Use a daemon rather than a cron job for mesh publications

Bob Mottram 8 vuotta sitten
vanhempi
commit
bd534ac02f
No account linked to committer's email
3 muutettua tiedostoa jossa 69 lisäystä ja 11 poistoa
  1. 35
    3
      src/freedombone-app-tox
  2. 34
    1
      src/freedombone-app-zeronet
  3. 0
    7
      src/freedombone-mesh

+ 35
- 3
src/freedombone-app-tox Näytä tiedosto

@@ -215,9 +215,13 @@ function remove_tox_avahi {
215 215
     cd $INSTALL_DIR/toxid
216 216
     make uninstall
217 217
     rm -rf $INSTALL_DIR/toxid
218
-    sed -i '/toxavahi/d' /etc/crontab
219
-    systemctl restart cron
220 218
     sed -i '/tox_avahi/d' $COMPLETION_FILE
219
+	if [ -f /etc/systemd/system/mesh-sync.service ]; then
220
+		systemctl stop mesh-sync
221
+		systemctl disable mesh-sync
222
+		rm -f /etc/systemd/system/mesh-sync.service
223
+		systemctl daemon-reload
224
+	fi
221 225
 }
222 226
 
223 227
 function remove_tox_client {
@@ -580,7 +584,35 @@ EOF
580 584
     if [ ! -f $rootdir/usr/local/bin/toxavahi ]; then
581 585
         exit 3621729
582 586
     fi
583
-    echo "*/1 *     * * *   root    /usr/local/bin/toxavahi > /dev/null" >> $rootdir/etc/crontab
587
+
588
+	MESH_SYNC_COMMAND=$rootdir/usr/bin/mesh-sync
589
+	echo '#!/bin/bash' > $MESH_SYNC_COMMAND
590
+	echo 'while true' >> $MESH_SYNC_COMMAND
591
+	echo 'do' >> $MESH_SYNC_COMMAND
592
+	echo '    /usr/bin/timeout 20 /usr/local/bin/toxavahi' >> $MESH_SYNC_COMMAND
593
+	echo '    /usr/bin/timeout 20 /usr/local/bin/zeronetavahi' >> $MESH_SYNC_COMMAND
594
+	echo '    sleep 5' >> $MESH_SYNC_COMMAND
595
+	echo 'done' >> $MESH_SYNC_COMMAND
596
+	chmod +x $MESH_SYNC_COMMAND
597
+
598
+	if [ ! -f $rootdir/etc/systemd/system/mesh-sync.service ]; then
599
+		MESH_SYNC_FILENAME=$rootdir/etc/systemd/system/mesh-sync.service
600
+		echo '[Unit]' > $MESH_SYNC_FILENAME
601
+		echo 'Description=mesh-sync - Service publications over avahi' >> $MESH_SYNC_FILENAME
602
+		echo 'After=network.target' >> $MESH_SYNC_FILENAME
603
+		echo '' >> $MESH_SYNC_FILENAME
604
+		echo '[Service]' >> $MESH_SYNC_FILENAME
605
+		echo 'User=root' >> $MESH_SYNC_FILENAME
606
+		echo 'ExecStart=/usr/bin/mesh-sync' >> $MESH_SYNC_FILENAME
607
+		echo 'Restart=on-failure' >> $MESH_SYNC_FILENAME
608
+		echo 'SuccessExitStatus=3 4' >> $MESH_SYNC_FILENAME
609
+		echo 'RestartForceExitStatus=3 4' >> $MESH_SYNC_FILENAME
610
+		echo '' >> $MESH_SYNC_FILENAME
611
+		echo '[Install]' >> $MESH_SYNC_FILENAME
612
+		echo 'WantedBy=multi-user.target' >> $MESH_SYNC_FILENAME
613
+
614
+		chroot "$rootdir" systemctl enable mesh-sync.service
615
+	fi
584 616
 }
585 617
 
586 618
 function mesh_tox_client {

+ 34
- 1
src/freedombone-app-zeronet Näytä tiedosto

@@ -120,6 +120,12 @@ function remove_zeronet {
120 120
 	if ! grep -Fxq "install_zeronet" $COMPLETION_FILE; then
121 121
 		return
122 122
 	fi
123
+	if [ -f /etc/systemd/system/mesh-sync.service ]; then
124
+		systemctl stop mesh-sync
125
+		systemctl disable mesh-sync
126
+		rm -f /etc/systemd/system/mesh-sync.service
127
+		systemctl daemon-reload
128
+	fi
123 129
 	iptables -D INPUT -i $WIFI_INTERFACE -p udp --dport $ZERONET_PORT -j ACCEPT
124 130
 	iptables -D INPUT -i $WIFI_INTERFACE -p tcp --dport $ZERONET_PORT -j ACCEPT
125 131
 	iptables -D INPUT -i $WIFI_INTERFACE -p udp --dport $TRACKER_PORT -j ACCEPT
@@ -555,7 +561,34 @@ function mesh_zeronet {
555 561
 	chroot "$rootdir" chown -R tracker:tracker $MESH_INSTALL_DIR/tracker
556 562
 
557 563
 	# publish regularly
558
-	echo "*/1 *     * * *   root    /usr/local/bin/zeronetavahi > /dev/null" >> $rootdir/etc/crontab
564
+	MESH_SYNC_COMMAND=$rootdir/usr/bin/mesh-sync
565
+	echo '#!/bin/bash' > $MESH_SYNC_COMMAND
566
+	echo 'while true' >> $MESH_SYNC_COMMAND
567
+	echo 'do' >> $MESH_SYNC_COMMAND
568
+	echo '    /usr/bin/timeout 20 /usr/local/bin/toxavahi' >> $MESH_SYNC_COMMAND
569
+	echo '    /usr/bin/timeout 20 /usr/local/bin/zeronetavahi' >> $MESH_SYNC_COMMAND
570
+	echo '    sleep 5' >> $MESH_SYNC_COMMAND
571
+	echo 'done' >> $MESH_SYNC_COMMAND
572
+	chmod +x $MESH_SYNC_COMMAND
573
+
574
+	if [ ! -f $rootdir/etc/systemd/system/mesh-sync.service ]; then
575
+		MESH_SYNC_FILENAME=$rootdir/etc/systemd/system/mesh-sync.service
576
+		echo '[Unit]' > $MESH_SYNC_FILENAME
577
+		echo 'Description=mesh-sync - Service publications over avahi' >> $MESH_SYNC_FILENAME
578
+		echo 'After=network.target' >> $MESH_SYNC_FILENAME
579
+		echo '' >> $MESH_SYNC_FILENAME
580
+		echo '[Service]' >> $MESH_SYNC_FILENAME
581
+		echo 'User=root' >> $MESH_SYNC_FILENAME
582
+		echo 'ExecStart=/usr/bin/mesh-sync' >> $MESH_SYNC_FILENAME
583
+		echo 'Restart=on-failure' >> $MESH_SYNC_FILENAME
584
+		echo 'SuccessExitStatus=3 4' >> $MESH_SYNC_FILENAME
585
+		echo 'RestartForceExitStatus=3 4' >> $MESH_SYNC_FILENAME
586
+		echo '' >> $MESH_SYNC_FILENAME
587
+		echo '[Install]' >> $MESH_SYNC_FILENAME
588
+		echo 'WantedBy=multi-user.target' >> $MESH_SYNC_FILENAME
589
+
590
+		chroot "$rootdir" systemctl enable mesh-sync.service
591
+	fi
559 592
 
560 593
 	chroot "$rootdir" systemctl enable tracker.service
561 594
 	chroot "$rootdir" systemctl enable zeronet.service

+ 0
- 7
src/freedombone-mesh Näytä tiedosto

@@ -169,13 +169,6 @@ function install_toxid {
169 169
         echo $"Couldn't install toxid"
170 170
         exit 6389
171 171
     fi
172
-
173
-    if ! grep -Fxq "toxavahi" /etc/crontab; then
174
-        cp /etc/crontab /tmp/crontab
175
-        echo "*/1 *       * * *   root    toxavahi > /dev/null" >> /tmp/crontab
176
-        sudo cp /tmp/crontab /etc/crontab
177
-        rm /tmp/crontab
178
-    fi
179 172
 }
180 173
 
181 174
 function run_tox {