install.sh 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. #!/bin/bash
  2. #
  3. # Autor: Tobias Müller
  4. # Beschreibung: Dieses Skript installiert den "Internet_over_USB" Service.
  5. # Der Service wird automatisch bei jedem Neustart des
  6. # BeagleBone Black ausgeführt und ermöglicht den Aufbau einer
  7. # Internetverbindung über den USB-Host-Anschluss des BeagleBone
  8. # Black. Das Install-Sktipt muss mit Root-Rechten gestartet
  9. # werden.
  10. #
  11. # Sollte sich der Speicherort der "Internet_over_USB.service"
  12. # Datei ändern, muss dieses Skript erneut gestartet werden.
  13. # Dabei muss sich das "install.sh" Skript im selben Ordner
  14. # befinden, wie die "Internet_over_USB.service" Datei.
  15. # Bash-Fenster leeren
  16. clear
  17. # Kontrolle ob Skript mit Root-Rechten gestartet wurde, ansonsten wird
  18. # das Skript mit einem Hinweis beendet
  19. if [ $(id -u) != 0 ]; then
  20. echo ""
  21. echo "Das Skript muss mit Root-Rechten gestartet werden!"
  22. echo ""
  23. exit -1
  24. fi
  25. # Willkommenstext mit Abfrage, ob die Installation gestartet werden soll
  26. echo ""
  27. echo "Willkommen zur Installation des \"Internet_over_USB\"-Services."
  28. echo "Möchten Sie die Installation starten (ja/nein)?"
  29. read answer
  30. while [ "$answer" != "ja" ]; do
  31. if [ "$answer" == "nein" ]; then
  32. echo ""
  33. echo "Beende das Installations-Skript."
  34. echo ""
  35. unset answer
  36. exit 0
  37. else
  38. echo ""
  39. echo "Ich habe Sie nicht verstanden."
  40. echo "Möchten Sie die Installation starten (ja/nein)?"
  41. read answer
  42. fi
  43. done
  44. # Servicename
  45. service_name="Internet_over_USB.service"
  46. # Aktueller Pfad
  47. service_path="`pwd`"
  48. # Kontrolle, ob Service-Datei im selben Verzeichnis wie "install.sh"-Skript
  49. if [ -e "$service_path/$service_name" ]; then
  50. echo ""
  51. echo "Die \"Internet_over_USB.service\"-Datei wurde gefunden."
  52. else
  53. echo ""
  54. echo "Die \"Internet_over_USB.service\"-Datei wurde nicht gefunden."
  55. echo "Beende das Installations-Skript."
  56. echo ""
  57. unset answer
  58. unset service_path
  59. unset service_name
  60. exit -1
  61. fi
  62. # systemd Speicherort für Bibliotheken
  63. systemd_lib="/lib/systemd/system"
  64. # systemd Speicherort Ausführdateien
  65. systemd_run="/etc/systemd/system/multi-user.target.wants"
  66. # Erstelle/Update symbolischen Link von der Systemd-Bibliothek zur Service-Datei
  67. if [ -e "$systemd_lib/$servie_name" ]; then
  68. echo ""
  69. echo "Update der symbolischen Verknüpfung von der Service-Datei:"
  70. echo "\"$service_path/$service_name\","
  71. echo "zur Systemd-Bibliothek:"
  72. echo "\"$systemd_lib/$service_name\"."
  73. ln -sfn "$service_path/$service_name" "$systemd_lib/$service_name"
  74. else
  75. echo ""
  76. echo "Erstelle eine symbolische Verknüpfung von der Service-Datei:"
  77. echo "\"$service_path/$service_name\","
  78. echo "zur Systemd-Bibliothek:"
  79. echo "\"$systemd_lib/$service_name\"."
  80. ln -s "$service_path/$service_name" "$systemd_lib/$service_name"
  81. fi
  82. # Erstelle/Update symbolischen Link vom Systemd-Speicherort für Konfigurations- und
  83. # Informationsdateien zur Service-Datei
  84. if [ -e "$systemd_lib/$servie_name" ]; then
  85. echo ""
  86. echo "Update der symbolischen Verknüpfung von der Service-Datei:"
  87. echo "\"$service_path/$service_name\","
  88. echo "zum Systemd-Speicherort für Konfigurations- und Informationsdateien:"
  89. echo "\"$systemd_run/$service_name\"."
  90. ln -sfn "$service_path/$service_name" "$systemd_run/$service_name"
  91. else
  92. echo ""
  93. echo "Erstelle eine symbolische Verknüpfung von der Service-Datei:"
  94. echo "\"$service_path/$service_name\","
  95. echo "zum Systemd-Speicherort für Konfigurations- und Informationsdateien:"
  96. echo "\"$systemd_run/$service_name\"."
  97. ln -s "$service_path/$service_name" "$systemd_run/$service_name"
  98. fi
  99. # Systemd-Daemon-Prozess neustarten
  100. echo ""
  101. echo "Starte den Systemd-Deamon-Prozess neu."
  102. systemctl daemon-reload
  103. # Aktiviere den Autostart für den "Internet_over_USB"-Service
  104. echo "Aktiviere den Autostart für den \"Internet_over_USB\"-Service."
  105. systemctl enable Internet_over_USB
  106. # Starte den "Internet_over_USB"-Service
  107. echo ""
  108. echo "Möchten Sie den BeagleBone Black neustarten, um den Service:"
  109. echo "\"Internet_over_USB\", zu aktivieren (ja/nein)?"
  110. read answer
  111. while [ "$answer" != "nein" ]; do
  112. if [ "$answer" == "ja" ]; then
  113. # Installationsabschluss
  114. echo ""
  115. echo "Die Serviceinstallation ist abgeschlossen."
  116. echo "Beende das Installations-Skript."
  117. echo ""
  118. echo "Starte den BeagleBone Black neu."
  119. echo ""
  120. # Variablen löschen
  121. unset systemd_lib
  122. unset systemd_run
  123. unset service_name
  124. unset service_path
  125. unset answer
  126. # Warte 5s
  127. sleep 5
  128. # Starte BeagleBone neu
  129. reboot
  130. else
  131. echo ""
  132. echo "Ich habe Sie nicht verstanden."
  133. echo "Möchten Sie die Installation starten (ja/nein)?"
  134. read answer
  135. fi
  136. done
  137. # Installationsabschluss
  138. echo ""
  139. echo "Die Serviceinstallation ist abgeschlossen."
  140. echo "Beende das Installations-Skript."
  141. echo ""
  142. # Variablen löschen
  143. unset systemd_lib
  144. unset systemd_run
  145. unset service_name
  146. unset service_path
  147. unset answer
  148. # Beende Installer
  149. exit 0