shutdown 0.4.2 
shutdown: ^0.4.2 copied to clipboard
Prioritized events for graceful shutdown in server Dart applications.
shutdown #
Helps you release system or shared resources during unexpected application shutdown.
Usage #
A simple usage example:
import 'dart:async';
import 'package:shutdown/shutdown.dart' as shutdown;
Future main() async {
  shutdown.triggerOnSigInt();
  shutdown.triggerOnSigHup();
  final db = await _acquireDB();
  shutdown.addHandler(() async => db.close());
  // [do your stuff]
  // call it at the end, this is a successful exit
  await shutdown.shutdown();
}
Future _acquireDB() async => null; // TODO: implement
Tip #
Combine this library with package:stack_trace:
import 'package:shutdown/shutdown.dart' as shutdown;
import 'package:stack_trace/stack_trace.dart';
Future main() async {
  shutdown.triggerOnSigInt();
  shutdown.triggerOnSigHup();
  return Chain.capture(() async {
    // TODO: initialize, register shutdown handlers
    // do your stuff
    await shutdown.shutdown();
  }, onError: (error, Chain chain) async {
    // TODO: report/log error and stack
    await shutdown.shutdown(exitCode: -1);
  });
}