handleWebdavStop method
Future<void>
handleWebdavStop(
- ArgResults argResults
)
Implementation
Future<void> handleWebdavStop(ArgResults argResults) async {
print('\ud83d\uded1 Stopping WebDAV server...');
final pid = await config.readWebdavPid();
if (pid == null) {
print('\u274c Server does not appear to be running.');
exit(1);
}
try {
final exists = await _isProcessRunning(pid);
if (!exists) {
print('\u26a0\ufe0f Process is not running. Cleaning up.');
await config.clearWebdavPid();
exit(0);
}
Process.killPid(pid, ProcessSignal.sigterm);
await Future.delayed(Duration(milliseconds: 500));
if (await _isProcessRunning(pid)) {
Process.killPid(pid, ProcessSignal.sigkill);
await Future.delayed(Duration(milliseconds: 200));
}
print('\u2705 Server stopped (PID: $pid).');
} catch (e) {
print('\u26a0\ufe0f Error terminating process: $e');
}
await config.clearWebdavPid();
}