0

我的代码目前如下所示:

// spawn threads
let handle_1 = tokio::spawn(...);
let handle_2 = tokio::spawn(...);
// this thread later starts a rocket.rs server
let handle_3 = tokio::spawn(...);

// handle ctrl+c
let h_signal = tokio::spawn(async move {
    match signal::ctrl_c().await {
        Ok(()) => {
            // shutdown
            ...
        }
        Err(_) => {
            // shutdown
            ...
        }
    }

    // save data
    ...

});
let _ = tokio::join!(handle_1, handle_1, handle_1, h_signal);

此代码在 Windows 和 Linux 上完美运行,但如果我在使用 ssh 连接的 VPS 上运行它,此代码会突然停止运行。通过停止工作,我的意思是:

  1. Rocket.rs 服务器没有启动
  2. 当我按 ctrl+c 时,程序只是退出而没有调用关闭代码

任何人都知道为什么会发生这种情况?

4

0 回答 0