跳到正文
灵动桌面框架
Esc
本栏目菜单

Process 进程插件

Process 插件提供进程管理能力,如重启应用和退出应用。框架已注册(tauri_plugin_process::init())并授予 process:default 权限(包含退出与重启)。

基本用法

import { relaunch, exit } from '@tauri-apps/plugin-process'

// 重启应用
await relaunch()

// 退出应用(退出码 0 表示正常退出)
await exit(0)

常见场景

更新后重启

框架的更新弹窗 src/components/ui/UpdateModal.tsx 就是这样用的:下载安装完成后,用户点「重启应用」时调用 relaunch()。

import type { Update } from '@tauri-apps/plugin-updater'
import { relaunch } from '@tauri-apps/plugin-process'

async function updateAndRestart(update: Update) {
  await update.downloadAndInstall()
  await relaunch()  // 重启应用,完成更新
}

托盘菜单退出

Rust 侧退出不需要 Process 插件,直接调用 AppHandle::exit 即可,框架托盘菜单就是这么做的:

// src-tauri/src/tray.rs
.on_menu_event(|app, event| match event.id.as_ref() {
    "show" => {
        crate::services::main_window_placement::show_main(app, "托盘菜单");
    }
    "quit" => {
        app.exit(0);
    }
    _ => {}
})

框架中点窗口关闭按钮只会隐藏到托盘(lib.rs 拦截了 CloseRequested),真正退出要走托盘「退出」或前端 exit()。

确认退出

import { exit } from '@tauri-apps/plugin-process'
import { Modal } from 'antd'

function handleQuit() {
  Modal.confirm({
    title: '确认退出',
    content: '确定要退出应用吗?',
    onOk: () => exit(0),
  })
}