proctitle_init(argc, argv);
set_program_name(argv[0]);
+ service_start(&argc, &argv);
remote = parse_options(argc, argv, &unixctl_path);
signal(SIGPIPE, SIG_IGN);
sighup = signal_register(SIGHUP);
memory_report(&usage);
simap_destroy(&usage);
}
- bridge_run_fast();
bridge_run();
- bridge_run_fast();
unixctl_server_run(unixctl);
netdev_run();
poll_immediate_wake();
}
poll_block();
+ if (should_service_stop()) {
+ exiting = true;
+ }
}
bridge_exit();
unixctl_server_destroy(unixctl);
+ service_stop();
return 0;
}