Просмотр исходного кода

install-script: optimize linux install script

Nick Peng 3 лет назад
Родитель
Сommit
410047822d
1 измененных файлов с 26 добавлено и 3 удалено
  1. 26 3
      package/linux/install

+ 26 - 3
package/linux/install

@@ -65,9 +65,31 @@ clean_service()
 
 get_systemd_path()
 {
-	service="`systemctl --no-legend| grep '\.service' | head -n 1 | awk '{print $1}'`"
-	SERVICE_PATH="`systemctl show $service | grep FragmentPath | awk -F'=' '{print $2}'`"
-	dirname $SERVICE_PATH
+	service="`systemctl --no-legend| grep '\.service' | head -n 1 | awk '{print $1}' 2>/dev/null`"
+	SERVICE_PATH="`systemctl show $service | grep FragmentPath | awk -F'=' '{print $2}' 2>/dev/null`"
+	if [ ! -z "$SERVICE_PATH" ]; then
+		SERVICE_PATH="`dirname $SERVICE_PATH 2>/dev/null`"
+		if [ -d "$SERVICE_PATH" ]; then
+			echo "$SERVICE_PATH"
+			return 0
+		fi 
+	fi
+
+	SERVICE_PATH="`pkg-config systemd --variable=systemdsystemunitdir 2>/dev/null`"
+	if [ ! -z "$SERVICE_PATH" ]; then
+		if [ -d "$SERVICE_PATH" ]; then
+			echo "$SERVICE_PATH"
+			return 0
+		fi 
+	fi
+
+	SERVICE_PATH="/lib/systemd/system"
+	if [ ! -d "$SERVICE_PATH" ]; then
+		echo "$SERVICE_PATH"
+		return 0
+	fi
+
+	return 1
 }
 
 install_files()
@@ -106,6 +128,7 @@ install_files()
 	if [ $ISSYSTEMD -eq 0 ]; then
 		SYSTEM_UNIT_PATH="`get_systemd_path`"
 		if [ -z "$SYSTEM_UNIT_PATH" ]; then
+			echo "cannot find systemd path"
 			return 1
 		fi
 		install -v -m 0644 -t $PREFIX$SYSTEM_UNIT_PATH systemd/smartdns.service