install.sh 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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 "Starte den \"Internet_over_USB\"-Service."
  108. systemctl start Internet_over_USB
  109. # Installationsabschluss
  110. echo ""
  111. echo "Die Serviceinstallation ist abgeschlossen."
  112. echo "Beende das Installations-Skript."
  113. echo ""
  114. # Variablen löschen
  115. unset systemd_lib
  116. unset systemd_run
  117. unset service_name
  118. unset service_path
  119. unset answer
  120. # Beende Installer
  121. exit 0