feat: 设置为开机自启动,异常退出后自动拉起

设置为开机自启动,异常退出后自动拉起

Log:
Task: https://pms.uniontech.com/task-view-142733.html
Influence: 开机自启动,退出自动被拉起
Change-Id: I5c9f8ef80e8a4f5fed2aa9bb59de09455a165360
This commit is contained in:
weizhixiang 2022-06-02 16:36:57 +08:00
parent 06ada3be52
commit 765365d364
4 changed files with 38 additions and 1 deletions

View File

@ -1,3 +1,4 @@
add_subdirectory(systemd)
add_subdirectory(dconf)
add_subdirectory(service)

View 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)
# serviceservice
install(FILES ${SERVICE_FILES} DESTINATION lib/systemd/user/)
# dde-session-initialized
install_symlink(dde-application-manager.service dde-session-initialized.target.wants)

View 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

View File

@ -635,7 +635,7 @@ void Entry::active(uint32_t timestamp)
// X11环境
XWindow xid = winInfo->getXid();
WindowInfoBase *activeWin = dock->getActiveWindow();
if (xid != activeWin->getXid()) {
if (activeWin && xid != activeWin->getXid()) {
dock->doActiveWindow(xid);
} else {
bool found = false;