我的代码目前如下所示:
// 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 上运行它,此代码会突然停止运行。通过停止工作,我的意思是:
- Rocket.rs 服务器没有启动
- 当我按 ctrl+c 时,程序只是退出而没有调用关闭代码
任何人都知道为什么会发生这种情况?