From 31c1575b95a2dce46bf2718ee8551112eeffe2fd Mon Sep 17 00:00:00 2001 From: renbin Date: Wed, 17 Apr 2024 11:46:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=90=AF=E5=8A=A8=E6=96=B9=E5=BC=8F=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 非开发者模式下设置systemd服务失败(cli同样)调整 非开发者模式下的服务设置方式,改由后端服务执行. * deepin-service-manager 唤起插件服务存在问题, 调整为独立应用管理. Log: 修复设置服务启动方式失败问题 Bug: https://pms.uniontech.com/bug-view-241793.html Change-Id: I577ac58d6061c8445e46c5e9d131483e6fe53715 --- .reuse/dep5 | 7 +- .tx/config | 17 +- CMakeLists.txt | 3 + debian/control | 3 +- debian/postinst | 13 +- .../service/service_manager.cpp | 136 ++++++++----- .../CMakeLists.txt | 70 +++++++ .../deepin-system-monitor-system-server.json | 10 + ...eepin-system-monitor-system-server.service | 11 ++ .../org.deepin.SystemMonitorSystemServer.conf | 17 ++ ...g.deepin.SystemMonitorSystemServer.service | 4 + ...deepin-system-monitor-system-server.policy | 78 ++++++++ .../src/main.cpp | 17 ++ .../src/systemdbusserver.cpp | 179 ++++++++++++++++++ .../src/systemdbusserver.h | 35 ++++ .../translations/policy/policy.ts | 17 ++ .../translations/policy/policy_ady.ts | 15 ++ .../translations/policy/policy_am_ET.ts | 15 ++ .../translations/policy/policy_ar.ts | 15 ++ .../translations/policy/policy_ast.ts | 15 ++ .../translations/policy/policy_az.ts | 15 ++ .../translations/policy/policy_bg.ts | 15 ++ .../translations/policy/policy_bn.ts | 15 ++ .../translations/policy/policy_bo.ts | 15 ++ .../translations/policy/policy_bqi.ts | 15 ++ .../translations/policy/policy_br.ts | 15 ++ .../translations/policy/policy_ca.ts | 15 ++ .../translations/policy/policy_cs.ts | 15 ++ .../translations/policy/policy_da.ts | 15 ++ .../translations/policy/policy_de.ts | 15 ++ .../translations/policy/policy_el.ts | 15 ++ .../translations/policy/policy_en_AU.ts | 15 ++ .../translations/policy/policy_eo.ts | 15 ++ .../translations/policy/policy_es.ts | 15 ++ .../translations/policy/policy_et.ts | 15 ++ .../translations/policy/policy_fa.ts | 15 ++ .../translations/policy/policy_fi.ts | 15 ++ .../translations/policy/policy_fil.ts | 15 ++ .../translations/policy/policy_fr.ts | 15 ++ .../translations/policy/policy_gl_ES.ts | 15 ++ .../translations/policy/policy_he.ts | 15 ++ .../translations/policy/policy_hi_IN.ts | 15 ++ .../translations/policy/policy_hr.ts | 15 ++ .../translations/policy/policy_hu.ts | 15 ++ .../translations/policy/policy_hy.ts | 15 ++ .../translations/policy/policy_id.ts | 15 ++ .../translations/policy/policy_it.ts | 15 ++ .../translations/policy/policy_ja.ts | 15 ++ .../translations/policy/policy_ka.ts | 15 ++ .../translations/policy/policy_km_KH.ts | 15 ++ .../translations/policy/policy_kn_IN.ts | 15 ++ .../translations/policy/policy_ko.ts | 15 ++ .../translations/policy/policy_ku.ts | 15 ++ .../translations/policy/policy_ku_IQ.ts | 15 ++ .../translations/policy/policy_ky.ts | 15 ++ .../translations/policy/policy_ky@Arab.ts | 15 ++ .../translations/policy/policy_lt.ts | 15 ++ .../translations/policy/policy_ml.ts | 15 ++ .../translations/policy/policy_mn.ts | 15 ++ .../translations/policy/policy_mr.ts | 15 ++ .../translations/policy/policy_ms.ts | 15 ++ .../translations/policy/policy_nb.ts | 15 ++ .../translations/policy/policy_ne.ts | 15 ++ .../translations/policy/policy_nl.ts | 15 ++ .../translations/policy/policy_pa.ts | 15 ++ .../translations/policy/policy_pam.ts | 15 ++ .../translations/policy/policy_pl.ts | 15 ++ .../translations/policy/policy_pt.ts | 15 ++ .../translations/policy/policy_pt_BR.ts | 15 ++ .../translations/policy/policy_ro.ts | 15 ++ .../translations/policy/policy_ru.ts | 15 ++ .../translations/policy/policy_sc.ts | 15 ++ .../translations/policy/policy_si.ts | 15 ++ .../translations/policy/policy_sk.ts | 15 ++ .../translations/policy/policy_sl.ts | 15 ++ .../translations/policy/policy_sq.ts | 15 ++ .../translations/policy/policy_sr.ts | 15 ++ .../translations/policy/policy_sv.ts | 15 ++ .../translations/policy/policy_sw.ts | 15 ++ .../translations/policy/policy_ta.ts | 15 ++ .../translations/policy/policy_th.ts | 15 ++ .../translations/policy/policy_tr.ts | 15 ++ .../translations/policy/policy_ug.ts | 15 ++ .../translations/policy/policy_uk.ts | 15 ++ .../translations/policy/policy_ur.ts | 15 ++ .../translations/policy/policy_vi.ts | 15 ++ .../translations/policy/policy_zh_CN.ts | 15 ++ .../translations/policy/policy_zh_HK.ts | 15 ++ .../translations/policy/policy_zh_TW.ts | 15 ++ 89 files changed, 1658 insertions(+), 54 deletions(-) create mode 100644 deepin-system-monitor-system-server/CMakeLists.txt create mode 100644 deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.json create mode 100644 deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.service create mode 100644 deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.conf create mode 100644 deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.service create mode 100644 deepin-system-monitor-system-server/misc/org.deepin.deepin-system-monitor-system-server.policy create mode 100644 deepin-system-monitor-system-server/src/main.cpp create mode 100644 deepin-system-monitor-system-server/src/systemdbusserver.cpp create mode 100644 deepin-system-monitor-system-server/src/systemdbusserver.h create mode 100644 deepin-system-monitor-system-server/translations/policy/policy.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ady.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_am_ET.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ar.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ast.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_az.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_bg.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_bn.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_bo.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_bqi.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_br.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ca.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_cs.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_da.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_de.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_el.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_en_AU.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_eo.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_es.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_et.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_fa.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_fi.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_fil.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_fr.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_gl_ES.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_he.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_hi_IN.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_hr.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_hu.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_hy.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_id.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_it.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ja.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ka.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_km_KH.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_kn_IN.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ko.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ku.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ku_IQ.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ky.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ky@Arab.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_lt.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ml.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_mn.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_mr.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ms.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_nb.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ne.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_nl.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_pa.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_pam.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_pl.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_pt.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_pt_BR.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ro.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ru.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sc.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_si.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sk.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sl.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sq.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sr.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sv.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_sw.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ta.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_th.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_tr.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ug.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_uk.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_ur.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_vi.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_zh_CN.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_zh_HK.ts create mode 100644 deepin-system-monitor-system-server/translations/policy/policy_zh_TW.ts diff --git a/.reuse/dep5 b/.reuse/dep5 index ec7677a8..b3fb2094 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -44,7 +44,7 @@ Copyright: UnionTech Software Technology Co., Ltd. License: LGPL-3.0-or-later # translations -Files: deepin-system-monitor-main/translations/* deepin-system-monitor-plugin/translations/* deepin-system-monitor-plugin-popup/translations/* +Files: deepin-system-monitor-main/translations/* deepin-system-monitor-plugin/translations/* deepin-system-monitor-plugin-popup/translations/* deepin-system-monitor-system-server/translations/* Copyright: UnionTech Software Technology Co., Ltd. License: LGPL-3.0-or-later @@ -148,6 +148,11 @@ Files: deepin-system-monitor-plugin-popup/system/* Copyright: UnionTech Software Technology Co., Ltd. License: GPL-3.0-or-later +# deepin-system-monitor-system-server +Files: deepin-system-monitor-system-server/misc/* +Copyright: UnionTech Software Technology Co., Ltd. +License: GPL-3.0-or-later + # *.service Files: *.service Copyright: UnionTech Software Technology Co., Ltd. diff --git a/.tx/config b/.tx/config index 2e0fba61..dab45d77 100644 --- a/.tx/config +++ b/.tx/config @@ -3,19 +3,19 @@ host = https://www.transifex.com minimum_perc = 80 mode = developer -[deepin-system-monitor.deepin-system-monitor] +[o:linuxdeepin:p:deepin-system-monitor:r:deepin-system-monitor] file_filter = deepin-system-monitor-main/translations/deepin-system-monitor_.ts source_file = deepin-system-monitor-main/translations/deepin-system-monitor.ts source_lang = en_US type = QT -[deepin-system-monitor.deepin-system-monitor-desktop] +[o:linuxdeepin:p:deepin-system-monitor:r:deepin-system-monitor-desktop] file_filter = deepin-system-monitor-main/translations/desktop/desktop_.ts source_file = deepin-system-monitor-main/translations/desktop/desktop.ts source_lang = en_US type = QT -[deepin-system-monitor.deepin-system-monitor-policy] +[o:linuxdeepin:p:deepin-system-monitor:r:deepin-system-monitor-policy] file_filter = deepin-system-monitor-main/translations/policy/policy_.ts source_file = deepin-system-monitor-main/translations/policy/policy.ts preTranlate_file = deepin-system-monitor-main/translations/policy/policy.policy @@ -23,16 +23,23 @@ source_lang = en_US type = QT #popup -[deepin-system-monitor.deepin-system-monitor-plugin-popup] +[o:linuxdeepin:p:deepin-system-monitor:r:deepin-system-monitor-plugin-popup] file_filter = deepin-system-monitor-plugin-popup/translations/deepin-system-monitor-plugin-popup_.ts source_file = deepin-system-monitor-plugin-popup/translations/deepin-system-monitor-plugin-popup.ts source_lang = en_US type = QT #plugin -[deepin-system-monitor.deepin-system-monitor-plugin] +[o:linuxdeepin:p:deepin-system-monitor:r:deepin-system-monitor-plugin] file_filter = deepin-system-monitor-plugin/translations/deepin-system-monitor-plugin_.ts source_file = deepin-system-monitor-plugin/translations/deepin-system-monitor-plugin.ts source_lang = en_US type = QT +#system-server +[o:linuxdeepin:p:deepin-system-monitor:r:deepin-system-monitor-system-server-policy] +file_filter = deepin-system-monitor-system-server/translations/policy/policy_.ts +source_file = deepin-system-monitor-system-server/translations/policy/policy.ts +preTranlate_file = deepin-system-monitor-system-server/misc/com.deepin.deepin-system-monitor-system-server.policy +source_lang = en_US +type = QT diff --git a/CMakeLists.txt b/CMakeLists.txt index 35915fd1..45492771 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,9 @@ ADD_SUBDIRECTORY(deepin-system-monitor-plugin-popup) ADD_SUBDIRECTORY(deepin-system-monitor-daemon) #系统监视器提示 ADD_SUBDIRECTORY(deepin-system-monitor-server) +#系统监视器后端提权处理服务 +ADD_SUBDIRECTORY(deepin-system-monitor-system-server) + #单元测试 if(DOTEST) ADD_SUBDIRECTORY(tests) diff --git a/debian/control b/debian/control index 8aae24af..ab380c91 100644 --- a/debian/control +++ b/debian/control @@ -26,7 +26,8 @@ Build-Depends: libgtest-dev, libgmock-dev, libdwayland-dev | libkf5wayland-dev, - libwayland-dev + libwayland-dev, + libpolkit-qt5-1-dev Standards-Version: 3.9.8 Homepage: https://github.com/linuxdeepin/deepin-system-monitor diff --git a/debian/postinst b/debian/postinst index 3aca9b1a..f704125c 100644 --- a/debian/postinst +++ b/debian/postinst @@ -2,8 +2,8 @@ set -e if [ "$1" = configure ]; then - if command -v setcap > /dev/null; then - if setcap cap_net_raw,cap_dac_read_search+ep /usr/bin/deepin-system-monitor;then + if command -v setcap >/dev/null; then + if setcap cap_net_raw,cap_dac_read_search+ep /usr/bin/deepin-system-monitor; then chmod u-s /usr/bin/deepin-system-monitor else echo "Setcap failed, falling back to setuid" >&2 @@ -12,7 +12,14 @@ if [ "$1" = configure ]; then else echo "Setcap is not installed, falling back to setuid" >&2 chmod u+s /usr/bin/deepin-system-monitor - fi + fi +fi + +# Restart service +if [ "$1" = "configure" ]; then + if [ -d /run/systemd/system ]; then + deb-systemd-invoke restart 'deepin-service-manager.service' >/dev/null || true + fi fi exit 0 diff --git a/deepin-system-monitor-main/service/service_manager.cpp b/deepin-system-monitor-main/service/service_manager.cpp index ab231fc9..e862a450 100644 --- a/deepin-system-monitor-main/service/service_manager.cpp +++ b/deepin-system-monitor-main/service/service_manager.cpp @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include @@ -41,6 +43,32 @@ using namespace dbus::common; std::atomic ServiceManager::m_instance; std::mutex ServiceManager::m_mutex; +/** + @brief 非开发者模式下,使用后端 DBus 服务设置 systemd 服务 \a serviceName 的启动模式 + */ +static bool setServiceEnable(const QString &servieName, bool enable, QString &errorString) +{ + QDBusInterface interface("org.deepin.SystemMonitorSystemServer", + "/org/deepin/SystemMonitorSystemServer", + "org.deepin.SystemMonitorSystemServer", + QDBusConnection::systemBus()); + QDBusReply retMsg = interface.call("setServiceEnable", servieName, enable); + errorString.clear(); + if (!retMsg.isValid()) { + errorString = retMsg.error().message(); + } else if (!retMsg.value().isEmpty()) { + errorString = retMsg.value(); + } + + if (!errorString.isEmpty()) { + qWarning() << QString("Set service %1 failed, error %1").arg(enable ? "enable" : "disable").arg(errorString); + return false; + } else { + qDebug() << QString("Set service %1 ret: %2").arg(enable ? "enable" : "disable").arg(retMsg.value()); + return true; + } +} + CustomTimer::CustomTimer(ServiceManager *mgr, QObject *parent) : QObject(parent), m_mgr(mgr) { @@ -324,61 +352,81 @@ ErrorContext ServiceManager::setServiceStartupMode(const QString &id, bool autoS proc.setProcessChannelMode(QProcess::MergedChannels); // {BIN_PKEXEC_PATH} {BIN_SYSTEMCTL_PATH} {enable/disable} {service} QString action = autoStart ? "enable" : "disable"; + bool useProcess = true; if (developerMode) { proc.start(BIN_PKEXEC_PATH, {BIN_SYSTEMCTL_PATH, action, id}); } else { + // Bug 241793 非开发者模式,使用后端DBus服务设置启动方式 +#if 0 proc.start(BIN_SYSTEMCTL_PATH, {action, id}); +#else + useProcess = false; + QString errorString; + bool dbusRet = setServiceEnable(id, autoStart, errorString); + if (!dbusRet) { + errno = 0; + ErrorContext errCtx {}; + errCtx = errfmt(errCtx, errno, title, errorString); + return errCtx; + } +#endif } - proc.waitForFinished(-1); - auto exitStatus = proc.exitStatus(); + ErrorContext le {}; - // exitStatus: - // crashed - // - // exitCode: - // 127 (pkexec) - not auth/cant auth/error - // 126 (pkexec) - auth dialog dismissed - // 0 (systemctl) - ok - // !0 (systemctl) - systemctl error, read stdout from child process - if (exitStatus == QProcess::CrashExit) { - errno = 0; - le = errfmt(le, errno, title, QApplication::translate("Service.Action.Set.Startup.Mode", - "Error: Failed to set service startup type due to the crashed sub process.")); - return le; - } else { - auto exitCode = proc.exitCode(); - if (exitCode == 127 || exitCode == 126) { - errno = EPERM; - le = errfmt(le, errno, title); - return le; - } else if (exitCode != 0) { - auto buf = proc.readAllStandardOutput(); + if (useProcess) { + proc.waitForFinished(-1); + auto exitStatus = proc.exitStatus(); + + // exitStatus: + // crashed + // + // exitCode: + // 127 (pkexec) - not auth/cant auth/error + // 126 (pkexec) - auth dialog dismissed + // 0 (systemctl) - ok + // !0 (systemctl) - systemctl error, read stdout from child process + if (exitStatus == QProcess::CrashExit) { errno = 0; - le = errfmt(le, errno, title, buf); + le = errfmt(le, errno, title, QApplication::translate("Service.Action.Set.Startup.Mode", + "Error: Failed to set service startup type due to the crashed sub process.")); return le; } else { - // success - refresh service stat -send signal - - // special case, do nothing there - if (id.endsWith("@")) - return ErrorContext(); - - Systemd1ManagerInterface mgrIf(DBUS_SYSTEMD1_SERVICE, - kSystemDObjectPath.path(), - QDBusConnection::systemBus()); - auto buf = normalizeServiceId(id, {}); - auto re = mgrIf.GetUnit(buf); - le = re.first; - if (le) { - if (le.getCode() == 3) { - auto o = Systemd1UnitInterface::normalizeUnitPath(buf); - updateServiceEntry(o.path()); - } else { - return le; - } + auto exitCode = proc.exitCode(); + if (exitCode == 127 || exitCode == 126) { + errno = EPERM; + le = errfmt(le, errno, title); + return le; + } else if (exitCode != 0) { + auto buf = proc.readAllStandardOutput(); + errno = 0; + le = errfmt(le, errno, title, buf); + return le; + } + } + } + + { + // success - refresh service stat -send signal + + // special case, do nothing there + if (id.endsWith("@")) + return ErrorContext(); + + Systemd1ManagerInterface mgrIf(DBUS_SYSTEMD1_SERVICE, + kSystemDObjectPath.path(), + QDBusConnection::systemBus()); + auto buf = normalizeServiceId(id, {}); + auto re = mgrIf.GetUnit(buf); + le = re.first; + if (le) { + if (le.getCode() == 3) { + auto o = Systemd1UnitInterface::normalizeUnitPath(buf); + updateServiceEntry(o.path()); } else { - updateServiceEntry(re.second.path()); + return le; } + } else { + updateServiceEntry(re.second.path()); } } #endif diff --git a/deepin-system-monitor-system-server/CMakeLists.txt b/deepin-system-monitor-system-server/CMakeLists.txt new file mode 100644 index 00000000..ec46e746 --- /dev/null +++ b/deepin-system-monitor-system-server/CMakeLists.txt @@ -0,0 +1,70 @@ +cmake_minimum_required(VERSION 3.7) + +set(BIN_NAME deepin-system-monitor-system-server) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong -D_FORTITY_SOURCE=1 -z noexecstack -pie -fPIC -z lazy") + +# 设置包含头文件的时候不用包含路径 begin **************************************************************************************** +MACRO(SUBDIRLIST result curdir) + FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) + SET(dirlist "") + FOREACH(child ${children}) + IF(IS_DIRECTORY ${curdir}/${child}) + LIST(APPEND dirlist ${child}) + ENDIF() + ENDFOREACH() + SET(${result} ${dirlist}) +ENDMACRO() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) +SUBDIRLIST(dirs ${CMAKE_CURRENT_SOURCE_DIR}/src) +foreach(dir ${dirs}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/${dir}) +endforeach() +# 设置包含头文件的时候不用包含路径 end **************************************************************************************** + +file(GLOB_RECURSE SRC_CPP ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) +file(GLOB_RECURSE SRC_H ${CMAKE_CURRENT_LIST_DIR}/src/*.h) + +find_package(Qt5 COMPONENTS Core DBus REQUIRED) +find_package(PolkitQt5-1 REQUIRED) + +add_executable(${BIN_NAME} + ${SRC_CPP} + ${SRC_H} +) + +target_include_directories(${BIN_NAME} PUBLIC + Qt5::Core + Qt5::DBus + PolkitQt5-1::Agent +) + +target_link_libraries(${BIN_NAME} PRIVATE + Qt5::Core + Qt5::DBus + PolkitQt5-1::Agent +) + +# Use deepin-service-manager mange DBus servicde +install(TARGETS ${BIN_NAME} DESTINATION /usr/lib/deepin-daemon/) +install(FILES ./misc/${BIN_NAME}.json DESTINATION share/deepin-service-manager/other/) +# DBus service and conf +install(FILES ./misc/org.deepin.SystemMonitorSystemServer.service DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/system-services) +install(FILES ./misc/org.deepin.SystemMonitorSystemServer.conf DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/system.d) +# Systemd +install(FILES ./misc/deepin-system-monitor-system-server.service DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system/) +# Polkit; Update translation +set(POLICY_FILE org.deepin.deepin-system-monitor-system-server.policy) +find_program(POLICY_TS_CONV deepin-policy-ts-convert REQUIRED) +add_custom_target(APP_POLICY_FILE_TEST + ALL + COMMAND ${POLICY_TS_CONV} ts2policy ${CMAKE_CURRENT_SOURCE_DIR}/misc/${POLICY_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/translations/policy/ ${POLICY_FILE}.tmp + COMMAND mv ${POLICY_FILE}.tmp ${CMAKE_CURRENT_SOURCE_DIR}/misc/${POLICY_FILE} +) +install(FILES ./misc/${POLICY_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/polkit-1/actions) diff --git a/deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.json b/deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.json new file mode 100644 index 00000000..45ec3f8f --- /dev/null +++ b/deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.json @@ -0,0 +1,10 @@ +{ + "name": "org.deepin.SystemMonitorSystemServer", + "startType": "OnDemand", + "idleTime": 10, + "policy": [ + { + "path": "/org/deepin/SystemMonitorSystemServer" + } + ] +} \ No newline at end of file diff --git a/deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.service b/deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.service new file mode 100644 index 00000000..8432b8a6 --- /dev/null +++ b/deepin-system-monitor-system-server/misc/deepin-system-monitor-system-server.service @@ -0,0 +1,11 @@ +[Unit] +Description=Deepin system monitor system server + +[Service] +Type=dbus +BusName=com.deepin.SystemMonitorSystemServer +ExecStart=/usr/lib/deepin-daemon/deepin-system-monitor-system-server +StandardOutput=syslog +CapabilityBoundingSet=~ +MemoryLimit=1G +IOWeight=200 \ No newline at end of file diff --git a/deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.conf b/deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.conf new file mode 100644 index 00000000..7cc27e0d --- /dev/null +++ b/deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.conf @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.service b/deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.service new file mode 100644 index 00000000..d92dc9ab --- /dev/null +++ b/deepin-system-monitor-system-server/misc/org.deepin.SystemMonitorSystemServer.service @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=org.deepin.SystemMonitorSystemServer +Exec=/usr/bin/false +SystemdService=deepin-system-monitor-system-server.service diff --git a/deepin-system-monitor-system-server/misc/org.deepin.deepin-system-monitor-system-server.policy b/deepin-system-monitor-system-server/misc/org.deepin.deepin-system-monitor-system-server.policy new file mode 100644 index 00000000..9b16fa6a --- /dev/null +++ b/deepin-system-monitor-system-server/misc/org.deepin.deepin-system-monitor-system-server.policy @@ -0,0 +1,78 @@ + + + + LinuxDeepin + https://www.deepin.com/ + + Set service startup type + Authentication is required to set service startup type + + no + no + auth_admin_keep + + /usr/bin/deepin-system-monitor + true + Hizmet başlangıç ​​türünü ayarla + Hizmet başlangıç ​​türünü ayarlamak için kimlik doğrulaması gerekli + Definir o tipo de arranque do serviço + É necessária a autenticação para definir o tipo de arranque do serviço + Tetapkan jenis permulaan perkhidmatan + Pengesahihan diperlukan untuk menetapkan jenis permulaan perkhidmatan + Indstil tjenestens opstartstype + Der kræves autentifikation for at indstille tjenestens opstartstype + تعيين نوع بدء تشغيل الخدمة + المصادقة مطلوبة لتعيين نوع بدء تشغيل الخدمة + Definir o tipo de inicialização do serviço + A autenticação é necessária para definir o tipo de inicialização do serviço + Termeniñ doare loc'hañ ar servij + An anaoudadur a zo rekis evit termeniñ an doare loc'hañ servij + Nastavit typ spouštění služby + Pro nastavení typu spouštění služby je třeba ověření se + Setel tipe layanan startup + Autentikasi diperlukan untuk menyetel tipe layanan startup + Estableza o tipo de inicio de servizo + A autenticación é necesaria para configurar o tipo de inicio de servizo + Dienst-Starttyp einstellen + Authentifizierung ist erforderlich, um den Starttyp des Dienstes einzustellen + Palvelun käynnistystyypin vaihto + Palvelun käynnistystyypin vaihtamiseen vaaditaan todennus + 서비스 시작 유형 설정 + 서비스 시작 유형을 설정하려면 인증이 필요합니다. + 設定服務的啟動方式 + 設定服務的啟動方式需要認證 + 設置服務的啟動方式 + 設置服務的啟動方式需要認證 + Állítsa be a szolgáltatás indítási típusát + Hitelesítés szükséges a szolgáltatás indítási típusának beállításához + Ustaw typ uruchomienia usługi + Wymagane jest uwierzytelnienie, aby ustawić typ uruchamiania usługi + مۇلازىمەت باشلاش تىپىنى بەلگىلەش + مۇلازىمەت باشلاش تىپىنى تەڭشەش ئۈچۈن دەلىللەش تەلەپ قىلىنىدۇ + Xidmətin başladılma növünü təyin edin + Xidmətin başladılma növünü təyin etmək üçün doğrulama tələb olunur + Постави режим покретања услуге + Идентификација је неопходна за поставку режима покретања услуга + Establecer tipo de inicio del servicio + Se requiere autenticación para establecer el tipo de servicio de inicio + Définir le type de démarrage du service + L'authentification est requise pour définir le type de démarrage du service + Imposta tipo di avvio del servizio + Autenticazione richiesta per variare il tipo di avvio automatico + Soort opstart instellen + Voer je wachtwoord in om het soort opstart in te stellen + 设置服务的启动方式 + 设置服务的启动方式需要认证 + ཞབས་ཞུའི་འགོ་སློང་བྱེད་ཐབས་སྒྲིག་འགོད་བྱེད་པ། + ཞབས་ཞུའི་འགོ་སློང་ཐབས་སྒྲིག་འགོད་བྱེད་པར་དཔང་དཔྱད་བྱ་དགོས། + Встановлення типу запуску служби + Для встановлення типу запуску служби слід пройти розпізнавання + Задать тип запуска службы + Требуется аутентификация для установки типа запуска службы + Caktoni lloj nisjeje shërbimi + Që të caktohet lloj nisjeje shërbimi, lyspet mirëfilltësim + Establiu el tipus d'inici del servei + Cal autenticació per establir el tipus d'inici del servei. + + diff --git a/deepin-system-monitor-system-server/src/main.cpp b/deepin-system-monitor-system-server/src/main.cpp new file mode 100644 index 00000000..83e02014 --- /dev/null +++ b/deepin-system-monitor-system-server/src/main.cpp @@ -0,0 +1,17 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include + +#include "systemdbusserver.h" + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + SystemDBusServer dbusServer; + dbusServer.exitDBusServer(10000); + + return a.exec(); +} diff --git a/deepin-system-monitor-system-server/src/systemdbusserver.cpp b/deepin-system-monitor-system-server/src/systemdbusserver.cpp new file mode 100644 index 00000000..19719859 --- /dev/null +++ b/deepin-system-monitor-system-server/src/systemdbusserver.cpp @@ -0,0 +1,179 @@ +// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "systemdbusserver.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +const QString s_PolkitActionSet = "org.deepin.systemmonitor.systemserver.set"; + +/** + @brief polkit 鉴权,通过配置文件处理 + */ +bool checkAuthorization(qint64 pid, const QString &action) +{ + PolkitQt1::Authority::Result ret = PolkitQt1::Authority::instance()->checkAuthorizationSync( + action, PolkitQt1::UnixProcessSubject(pid), PolkitQt1::Authority::AllowUserInteraction); + if (PolkitQt1::Authority::Yes == ret) { + return true; + } else { + qWarning() << qPrintable("Policy authorization check failed!"); + return false; + } +} + +/** + @return 返回PID对应的可执行程序名称 + */ +static QString getProcIdExe(qint64 id) +{ + QString execName; + if (id > 0) { + // Read contents of virtual /proc/{pid}/cmdline file + QString exeSymlinkPath = QString("/proc/%1/exe").arg(id); + char *actualpath = realpath(exeSymlinkPath.toStdString().c_str(), nullptr); + execName = QString(actualpath); + } + return execName; +} + +SystemDBusServer::SystemDBusServer(QObject *parent) + : QObject(parent) +{ + // name: 配置文件中的服务名称 org.deepin.SystemMonitorSystemServer + QDBusConnection dbus = QDBusConnection::systemBus(); + if (dbus.registerService("org.deepin.SystemMonitorSystemServer")) { + QDBusConnection::RegisterOptions opts = + QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals | QDBusConnection::ExportAllProperties; + if (!dbus.registerObject("/org/deepin/SystemMonitorSystemServer", this, opts)) { + qWarning() << qPrintable("Register dbus object failed") << dbus.lastError().message(); + } + } else { + qWarning() << qPrintable("Register dbus failed") << dbus.lastError().message(); + } + m_timer.setSingleShot(true); + connect(&m_timer, &QTimer::timeout, this, [=]() { qApp->exit(0); }); +} + +/** + @brief 延时退出执行服务 + */ +void SystemDBusServer::exitDBusServer(int msec) +{ + qApp->processEvents(); + m_timer.start(msec); +} + +/** + @brief 设置 systemctl 服务 \a serviceName 的启动方式为 \b enable ,仅用于非开发者模式 + */ +QString SystemDBusServer::setServiceEnable(const QString &serviceName, bool enable) +{ + QString ret = setServiceEnableImpl(serviceName, enable); + exitDBusServer(8000); + return ret; +} + +/** + @brief 执行设置 systemctl 服务 \a serviceName 启动方式 \a enable ,将返回详细处理结果 + */ +QString SystemDBusServer::setServiceEnableImpl(const QString &serviceName, bool enable) +{ + // 调用者限制前台系统监视器程序 + if (!checkCaller()) { + qWarning() << qPrintable("Caller not authorized"); + return QString(strerror(EPERM)); + } + + // 不允许包含';' ' '字符,服务名称长度同样限制 + if (serviceName.isEmpty() || (serviceName.size() > SHRT_MAX) || serviceName.contains(QRegExp("[; ]"))) { + qWarning() << qPrintable("Invalid service name"); + return QString(strerror(EINVAL)); + } + + // 判断服务是否存在 + QProcess listPorcess; + listPorcess.start("systemctl", {"list-unit-files", "--type=service", "--no-pager"}); + listPorcess.waitForFinished(); + QByteArray serviceList = listPorcess.readAll(); + if (!serviceList.contains(serviceName.toUtf8())) { + qWarning() << qPrintable("Service not exists"); + return QString(strerror(EINVAL)); + } + + // 鉴权处理 + if (!checkAuthorization(dbusCallerPid(), s_PolkitActionSet)) { + qWarning() << qPrintable("Polkit authorization failed"); + return QString(strerror(EPERM)); + } + + // 执行设置 + QProcess process; + process.start("systemctl", {enable ? "enable" : "disable", serviceName}); + process.waitForFinished(); + QString errorRet = process.readAll(); + + // 检测是否执行成功 + process.start("systemctl", {"is-enabled", serviceName}); + process.waitForFinished(); + QString checkRet = process.readAll(); + if (enable && ("enabled" == checkRet)) { + return {}; + } else if (!enable && ("disabled" == checkRet)) { + return {}; + } + + // 返回命令执行结果 + return errorRet; +} + +/** + @return DBus 调用者的PID + */ +qint64 SystemDBusServer::dbusCallerPid() const +{ + if (!calledFromDBus()) { + return 0; + } + + auto interface = connection().interface(); + if (interface) { + return static_cast(interface->servicePid(message().service()).value()); + } + + return 0; +} + +/** + @return 返回调用者是否为前台的系统监视器程序 + */ +bool SystemDBusServer::checkCaller() const +{ + if (!calledFromDBus()) { + return false; + } + + qint64 callerPid = dbusCallerPid(); + QString callerExe = getProcIdExe(callerPid); + QString dbmExe = QStandardPaths::findExecutable("deepin-system-monitor", {"/usr/bin"}); + + qDebug() << qPrintable("callerPid is: ") << callerPid << qPrintable("callerExe is:") << callerExe; + if (callerExe != dbmExe) { + qDebug() << qPrintable("caller not authorized"); + return false; + } + + qDebug() << qPrintable("caller authorized"); + return true; +} diff --git a/deepin-system-monitor-system-server/src/systemdbusserver.h b/deepin-system-monitor-system-server/src/systemdbusserver.h new file mode 100644 index 00000000..f36f74ac --- /dev/null +++ b/deepin-system-monitor-system-server/src/systemdbusserver.h @@ -0,0 +1,35 @@ +// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef DBUSALARMNOTIFY_H +#define DBUSALARMNOTIFY_H + +#include +#include +#include + +class SystemDBusServer : public QObject, protected QDBusContext +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.deepin.SystemMonitorSystemServer") + +public: + SystemDBusServer(QObject *parent = nullptr); + ~SystemDBusServer() override {} + + void exitDBusServer(int msec); + +public Q_SLOTS: + QString setServiceEnable(const QString &serviceName, bool enable); + +private: + QString setServiceEnableImpl(const QString &serviceName, bool enable); + qint64 dbusCallerPid() const; + bool checkCaller() const; + +private: + QTimer m_timer; +}; + +#endif // DBUS_OBJECT_H diff --git a/deepin-system-monitor-system-server/translations/policy/policy.ts b/deepin-system-monitor-system-server/translations/policy/policy.ts new file mode 100644 index 00000000..d1b77e74 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy.ts @@ -0,0 +1,17 @@ + + + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ady.ts b/deepin-system-monitor-system-server/translations/policy/policy_ady.ts new file mode 100644 index 00000000..20d859c8 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ady.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_am_ET.ts b/deepin-system-monitor-system-server/translations/policy/policy_am_ET.ts new file mode 100644 index 00000000..a6dfdafa --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_am_ET.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ar.ts b/deepin-system-monitor-system-server/translations/policy/policy_ar.ts new file mode 100644 index 00000000..e94b29f0 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ar.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + المصادقة مطلوبة لتعيين نوع بدء تشغيل الخدمة + + + + Set service startup type + تعيين نوع بدء تشغيل الخدمة + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ast.ts b/deepin-system-monitor-system-server/translations/policy/policy_ast.ts new file mode 100644 index 00000000..e6247130 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ast.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_az.ts b/deepin-system-monitor-system-server/translations/policy/policy_az.ts new file mode 100644 index 00000000..462d7d9c --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_az.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Xidmətin başladılma növünü təyin etmək üçün doğrulama tələb olunur + + + + Set service startup type + Xidmətin başladılma növünü təyin edin + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_bg.ts b/deepin-system-monitor-system-server/translations/policy/policy_bg.ts new file mode 100644 index 00000000..c1daadde --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_bg.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_bn.ts b/deepin-system-monitor-system-server/translations/policy/policy_bn.ts new file mode 100644 index 00000000..28e1dc88 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_bn.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_bo.ts b/deepin-system-monitor-system-server/translations/policy/policy_bo.ts new file mode 100644 index 00000000..27ad170d --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_bo.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + ཞབས་ཞུའི་འགོ་སློང་ཐབས་སྒྲིག་འགོད་བྱེད་པར་དཔང་དཔྱད་བྱ་དགོས། + + + + Set service startup type + ཞབས་ཞུའི་འགོ་སློང་བྱེད་ཐབས་སྒྲིག་འགོད་བྱེད་པ། + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_bqi.ts b/deepin-system-monitor-system-server/translations/policy/policy_bqi.ts new file mode 100644 index 00000000..6a7a789f --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_bqi.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_br.ts b/deepin-system-monitor-system-server/translations/policy/policy_br.ts new file mode 100644 index 00000000..bbe9c39e --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_br.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + An anaoudadur a zo rekis evit termeniñ an doare loc'hañ servij + + + + Set service startup type + Termeniñ doare loc'hañ ar servij + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ca.ts b/deepin-system-monitor-system-server/translations/policy/policy_ca.ts new file mode 100644 index 00000000..8d4b78d7 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ca.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Cal autenticació per establir el tipus d'inici del servei. + + + + Set service startup type + Establiu el tipus d'inici del servei + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_cs.ts b/deepin-system-monitor-system-server/translations/policy/policy_cs.ts new file mode 100644 index 00000000..ffe08fca --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_cs.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Pro nastavení typu spouštění služby je třeba ověření se + + + + Set service startup type + Nastavit typ spouštění služby + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_da.ts b/deepin-system-monitor-system-server/translations/policy/policy_da.ts new file mode 100644 index 00000000..5200dc7f --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_da.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Der kræves autentifikation for at indstille tjenestens opstartstype + + + + Set service startup type + Indstil tjenestens opstartstype + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_de.ts b/deepin-system-monitor-system-server/translations/policy/policy_de.ts new file mode 100644 index 00000000..abb78282 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_de.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Authentifizierung ist erforderlich, um den Starttyp des Dienstes einzustellen + + + + Set service startup type + Dienst-Starttyp einstellen + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_el.ts b/deepin-system-monitor-system-server/translations/policy/policy_el.ts new file mode 100644 index 00000000..f46217b4 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_el.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_en_AU.ts b/deepin-system-monitor-system-server/translations/policy/policy_en_AU.ts new file mode 100644 index 00000000..4c43556e --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_en_AU.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_eo.ts b/deepin-system-monitor-system-server/translations/policy/policy_eo.ts new file mode 100644 index 00000000..d9f3cd3d --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_eo.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_es.ts b/deepin-system-monitor-system-server/translations/policy/policy_es.ts new file mode 100644 index 00000000..cf770743 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_es.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Se requiere autenticación para establecer el tipo de servicio de inicio + + + + Set service startup type + Establecer tipo de inicio del servicio + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_et.ts b/deepin-system-monitor-system-server/translations/policy/policy_et.ts new file mode 100644 index 00000000..4b0af7f1 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_et.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_fa.ts b/deepin-system-monitor-system-server/translations/policy/policy_fa.ts new file mode 100644 index 00000000..d42fa8d5 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_fa.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_fi.ts b/deepin-system-monitor-system-server/translations/policy/policy_fi.ts new file mode 100644 index 00000000..b66ec106 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_fi.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Palvelun käynnistystyypin vaihtamiseen vaaditaan todennus + + + + Set service startup type + Palvelun käynnistystyypin vaihto + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_fil.ts b/deepin-system-monitor-system-server/translations/policy/policy_fil.ts new file mode 100644 index 00000000..cf408915 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_fil.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_fr.ts b/deepin-system-monitor-system-server/translations/policy/policy_fr.ts new file mode 100644 index 00000000..67b3b896 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_fr.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + L'authentification est requise pour définir le type de démarrage du service + + + + Set service startup type + Définir le type de démarrage du service + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_gl_ES.ts b/deepin-system-monitor-system-server/translations/policy/policy_gl_ES.ts new file mode 100644 index 00000000..0d00d8f1 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_gl_ES.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + A autenticación é necesaria para configurar o tipo de inicio de servizo + + + + Set service startup type + Estableza o tipo de inicio de servizo + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_he.ts b/deepin-system-monitor-system-server/translations/policy/policy_he.ts new file mode 100644 index 00000000..163d3a68 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_he.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_hi_IN.ts b/deepin-system-monitor-system-server/translations/policy/policy_hi_IN.ts new file mode 100644 index 00000000..ad25cd88 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_hi_IN.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_hr.ts b/deepin-system-monitor-system-server/translations/policy/policy_hr.ts new file mode 100644 index 00000000..50803ede --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_hr.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_hu.ts b/deepin-system-monitor-system-server/translations/policy/policy_hu.ts new file mode 100644 index 00000000..8206b297 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_hu.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Hitelesítés szükséges a szolgáltatás indítási típusának beállításához + + + + Set service startup type + Állítsa be a szolgáltatás indítási típusát + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_hy.ts b/deepin-system-monitor-system-server/translations/policy/policy_hy.ts new file mode 100644 index 00000000..14ed6e46 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_hy.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_id.ts b/deepin-system-monitor-system-server/translations/policy/policy_id.ts new file mode 100644 index 00000000..82bd01e3 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_id.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Autentikasi diperlukan untuk menyetel tipe layanan startup + + + + Set service startup type + Setel tipe layanan startup + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_it.ts b/deepin-system-monitor-system-server/translations/policy/policy_it.ts new file mode 100644 index 00000000..077b2d95 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_it.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Autenticazione richiesta per variare il tipo di avvio automatico + + + + Set service startup type + Imposta tipo di avvio del servizio + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ja.ts b/deepin-system-monitor-system-server/translations/policy/policy_ja.ts new file mode 100644 index 00000000..35be9295 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ja.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ka.ts b/deepin-system-monitor-system-server/translations/policy/policy_ka.ts new file mode 100644 index 00000000..901d2548 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ka.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_km_KH.ts b/deepin-system-monitor-system-server/translations/policy/policy_km_KH.ts new file mode 100644 index 00000000..9b98a818 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_km_KH.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_kn_IN.ts b/deepin-system-monitor-system-server/translations/policy/policy_kn_IN.ts new file mode 100644 index 00000000..d3f5d4ba --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_kn_IN.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ko.ts b/deepin-system-monitor-system-server/translations/policy/policy_ko.ts new file mode 100644 index 00000000..7ef31cd2 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ko.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + 서비스 시작 유형을 설정하려면 인증이 필요합니다. + + + + Set service startup type + 서비스 시작 유형 설정 + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ku.ts b/deepin-system-monitor-system-server/translations/policy/policy_ku.ts new file mode 100644 index 00000000..e7c5f100 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ku.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ku_IQ.ts b/deepin-system-monitor-system-server/translations/policy/policy_ku_IQ.ts new file mode 100644 index 00000000..9e0be9a8 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ku_IQ.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ky.ts b/deepin-system-monitor-system-server/translations/policy/policy_ky.ts new file mode 100644 index 00000000..f5206484 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ky.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ky@Arab.ts b/deepin-system-monitor-system-server/translations/policy/policy_ky@Arab.ts new file mode 100644 index 00000000..3c2d2823 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ky@Arab.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_lt.ts b/deepin-system-monitor-system-server/translations/policy/policy_lt.ts new file mode 100644 index 00000000..18b453d0 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_lt.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ml.ts b/deepin-system-monitor-system-server/translations/policy/policy_ml.ts new file mode 100644 index 00000000..c27c600a --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ml.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_mn.ts b/deepin-system-monitor-system-server/translations/policy/policy_mn.ts new file mode 100644 index 00000000..ff8ef2b6 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_mn.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_mr.ts b/deepin-system-monitor-system-server/translations/policy/policy_mr.ts new file mode 100644 index 00000000..5a945420 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_mr.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ms.ts b/deepin-system-monitor-system-server/translations/policy/policy_ms.ts new file mode 100644 index 00000000..d6d33812 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ms.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Pengesahihan diperlukan untuk menetapkan jenis permulaan perkhidmatan + + + + Set service startup type + Tetapkan jenis permulaan perkhidmatan + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_nb.ts b/deepin-system-monitor-system-server/translations/policy/policy_nb.ts new file mode 100644 index 00000000..ce31d485 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_nb.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ne.ts b/deepin-system-monitor-system-server/translations/policy/policy_ne.ts new file mode 100644 index 00000000..ec7acab2 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ne.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_nl.ts b/deepin-system-monitor-system-server/translations/policy/policy_nl.ts new file mode 100644 index 00000000..aa60d355 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_nl.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Voer je wachtwoord in om het soort opstart in te stellen + + + + Set service startup type + Soort opstart instellen + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_pa.ts b/deepin-system-monitor-system-server/translations/policy/policy_pa.ts new file mode 100644 index 00000000..a0292090 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_pa.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_pam.ts b/deepin-system-monitor-system-server/translations/policy/policy_pam.ts new file mode 100644 index 00000000..d7406d84 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_pam.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_pl.ts b/deepin-system-monitor-system-server/translations/policy/policy_pl.ts new file mode 100644 index 00000000..0301d06e --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_pl.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Wymagane jest uwierzytelnienie, aby ustawić typ uruchamiania usługi + + + + Set service startup type + Ustaw typ uruchomienia usługi + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_pt.ts b/deepin-system-monitor-system-server/translations/policy/policy_pt.ts new file mode 100644 index 00000000..32b31cd3 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_pt.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + É necessária a autenticação para definir o tipo de arranque do serviço + + + + Set service startup type + Definir o tipo de arranque do serviço + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_pt_BR.ts b/deepin-system-monitor-system-server/translations/policy/policy_pt_BR.ts new file mode 100644 index 00000000..494afbfd --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_pt_BR.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + A autenticação é necessária para definir o tipo de inicialização do serviço + + + + Set service startup type + Definir o tipo de inicialização do serviço + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ro.ts b/deepin-system-monitor-system-server/translations/policy/policy_ro.ts new file mode 100644 index 00000000..ab6d2b86 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ro.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ru.ts b/deepin-system-monitor-system-server/translations/policy/policy_ru.ts new file mode 100644 index 00000000..9a89a709 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ru.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Требуется аутентификация для установки типа запуска службы + + + + Set service startup type + Задать тип запуска службы + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sc.ts b/deepin-system-monitor-system-server/translations/policy/policy_sc.ts new file mode 100644 index 00000000..69fa81a0 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sc.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_si.ts b/deepin-system-monitor-system-server/translations/policy/policy_si.ts new file mode 100644 index 00000000..4d2d61a5 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_si.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sk.ts b/deepin-system-monitor-system-server/translations/policy/policy_sk.ts new file mode 100644 index 00000000..5d684d7a --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sk.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sl.ts b/deepin-system-monitor-system-server/translations/policy/policy_sl.ts new file mode 100644 index 00000000..2ad88a94 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sl.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sq.ts b/deepin-system-monitor-system-server/translations/policy/policy_sq.ts new file mode 100644 index 00000000..7ea60a50 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sq.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Që të caktohet lloj nisjeje shërbimi, lyspet mirëfilltësim + + + + Set service startup type + Caktoni lloj nisjeje shërbimi + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sr.ts b/deepin-system-monitor-system-server/translations/policy/policy_sr.ts new file mode 100644 index 00000000..96404d8b --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sr.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Идентификација је неопходна за поставку режима покретања услуга + + + + Set service startup type + Постави режим покретања услуге + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sv.ts b/deepin-system-monitor-system-server/translations/policy/policy_sv.ts new file mode 100644 index 00000000..19bea9b2 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sv.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_sw.ts b/deepin-system-monitor-system-server/translations/policy/policy_sw.ts new file mode 100644 index 00000000..f11f29f5 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_sw.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ta.ts b/deepin-system-monitor-system-server/translations/policy/policy_ta.ts new file mode 100644 index 00000000..3f366fbd --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ta.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_th.ts b/deepin-system-monitor-system-server/translations/policy/policy_th.ts new file mode 100644 index 00000000..a860561a --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_th.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_tr.ts b/deepin-system-monitor-system-server/translations/policy/policy_tr.ts new file mode 100644 index 00000000..809065ec --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_tr.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Hizmet başlangıç ​​türünü ayarlamak için kimlik doğrulaması gerekli + + + + Set service startup type + Hizmet başlangıç ​​türünü ayarla + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ug.ts b/deepin-system-monitor-system-server/translations/policy/policy_ug.ts new file mode 100644 index 00000000..de8229d6 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ug.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + مۇلازىمەت باشلاش تىپىنى تەڭشەش ئۈچۈن دەلىللەش تەلەپ قىلىنىدۇ + + + + Set service startup type + مۇلازىمەت باشلاش تىپىنى بەلگىلەش + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_uk.ts b/deepin-system-monitor-system-server/translations/policy/policy_uk.ts new file mode 100644 index 00000000..e293b866 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_uk.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + Для встановлення типу запуску служби слід пройти розпізнавання + + + + Set service startup type + Встановлення типу запуску служби + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_ur.ts b/deepin-system-monitor-system-server/translations/policy/policy_ur.ts new file mode 100644 index 00000000..b7dd917b --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_ur.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_vi.ts b/deepin-system-monitor-system-server/translations/policy/policy_vi.ts new file mode 100644 index 00000000..d03fc2ff --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_vi.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + + + + + Set service startup type + + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_zh_CN.ts b/deepin-system-monitor-system-server/translations/policy/policy_zh_CN.ts new file mode 100644 index 00000000..bec12aaf --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_zh_CN.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + 设置服务的启动方式需要认证 + + + + Set service startup type + 设置服务的启动方式 + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_zh_HK.ts b/deepin-system-monitor-system-server/translations/policy/policy_zh_HK.ts new file mode 100644 index 00000000..0be97222 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_zh_HK.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + 設置服務的啟動方式需要認證 + + + + Set service startup type + 設置服務的啟動方式 + + + \ No newline at end of file diff --git a/deepin-system-monitor-system-server/translations/policy/policy_zh_TW.ts b/deepin-system-monitor-system-server/translations/policy/policy_zh_TW.ts new file mode 100644 index 00000000..299d5295 --- /dev/null +++ b/deepin-system-monitor-system-server/translations/policy/policy_zh_TW.ts @@ -0,0 +1,15 @@ + + + policy + + + Authentication is required to set service startup type + 設定服務的啟動方式需要認證 + + + + Set service startup type + 設定服務的啟動方式 + + + \ No newline at end of file