feat: 设置为开机自启动,异常退出后自动拉起
设置为开机自启动,异常退出后自动拉起 Log: Task: https://pms.uniontech.com/task-view-142733.html Influence: 开机自启动,退出自动被拉起 Change-Id: I5c9f8ef80e8a4f5fed2aa9bb59de09455a165360
This commit is contained in:
parent
06ada3be52
commit
765365d364
@ -1,3 +1,4 @@
|
|||||||
add_subdirectory(systemd)
|
add_subdirectory(systemd)
|
||||||
add_subdirectory(dconf)
|
add_subdirectory(dconf)
|
||||||
|
add_subdirectory(service)
|
||||||
|
|
||||||
|
15
misc/service/CMakeLists.txt
Normal file
15
misc/service/CMakeLists.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
set(SERVICE_FILES
|
||||||
|
dde-application-manager.service
|
||||||
|
)
|
||||||
|
|
||||||
|
macro(install_symlink filepath wantsdir)
|
||||||
|
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/link/${wantsdir}/)
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_INSTALL_PREFIX}/lib/systemd/user/${filepath} ${PROJECT_BINARY_DIR}/link/${wantsdir}/${filepath})
|
||||||
|
install(FILES ${PROJECT_BINARY_DIR}/link/${wantsdir}/${filepath} DESTINATION lib/systemd/user/${wantsdir}/)
|
||||||
|
endmacro(install_symlink)
|
||||||
|
|
||||||
|
# 安装service文件到用户service目录
|
||||||
|
install(FILES ${SERVICE_FILES} DESTINATION lib/systemd/user/)
|
||||||
|
|
||||||
|
# 添加软链接,系统启动时被dde-session-initialized拉起
|
||||||
|
install_symlink(dde-application-manager.service dde-session-initialized.target.wants)
|
21
misc/service/dde-application-manager.service
Normal file
21
misc/service/dde-application-manager.service
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=dde application manager service
|
||||||
|
RefuseManualStart=no
|
||||||
|
RefuseManualStop=no
|
||||||
|
#OnFailure=dde-session-shutdown.target
|
||||||
|
OnFailureJobMode=replace-irreversibly
|
||||||
|
CollectMode=inactive-or-failed
|
||||||
|
StartLimitIntervalSec=10s
|
||||||
|
StartLimitBurst=30
|
||||||
|
|
||||||
|
Requisite=dde-session-initialized.target
|
||||||
|
PartOf=dde-session-initialized.target
|
||||||
|
After=dde-session-initialized.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/deepin-application-manager
|
||||||
|
TimeoutStartSec=infinity
|
||||||
|
Slice=components.slice
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=300ms
|
@ -635,7 +635,7 @@ void Entry::active(uint32_t timestamp)
|
|||||||
// X11环境
|
// X11环境
|
||||||
XWindow xid = winInfo->getXid();
|
XWindow xid = winInfo->getXid();
|
||||||
WindowInfoBase *activeWin = dock->getActiveWindow();
|
WindowInfoBase *activeWin = dock->getActiveWindow();
|
||||||
if (xid != activeWin->getXid()) {
|
if (activeWin && xid != activeWin->getXid()) {
|
||||||
dock->doActiveWindow(xid);
|
dock->doActiveWindow(xid);
|
||||||
} else {
|
} else {
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user