私のコードは現在次のようになっています。
// 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 を押すと、シャットダウンコードが呼び出されずにプログラムが終了します
なぜこれが起こるのか、誰にもアイデアがありますか?