diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 0801d34b83..83df36fe91 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -76,6 +76,7 @@ target_link_libraries(gzip LibCompress) target_link_libraries(id LibMain) target_link_libraries(js LibJS LibLine LibMain) target_link_libraries(keymap LibKeyboard LibMain) +target_link_libraries(logout LibMain) target_link_libraries(lspci LibPCIDB) target_link_libraries(lsusb LibUSBDB LibMain) target_link_libraries(man LibMarkdown) diff --git a/Userland/Utilities/logout.cpp b/Userland/Utilities/logout.cpp index 0aedb63953..b9597c32ee 100644 --- a/Userland/Utilities/logout.cpp +++ b/Userland/Utilities/logout.cpp @@ -5,6 +5,8 @@ */ #include +#include +#include #include static Core::ProcessStatistics const& get_proc(Core::AllProcessesStatistics const& stats, pid_t pid) @@ -16,24 +18,12 @@ static Core::ProcessStatistics const& get_proc(Core::AllProcessesStatistics cons VERIFY_NOT_REACHED(); } -int main(int, char**) +ErrorOr serenity_main(Main::Arguments) { - if (pledge("stdio proc rpath", nullptr) < 0) { - perror("pledge"); - return 1; - } - - if (unveil("/proc/all", "r") < 0) { - perror("unveil"); - return 1; - } - - if (unveil("/etc/passwd", "r") < 0) { - perror("unveil"); - return 1; - } - - unveil(nullptr, nullptr); + TRY(Core::System::pledge("stdio proc rpath", nullptr)); + TRY(Core::System::unveil("/proc/all", "r")); + TRY(Core::System::unveil("/etc/passwd", "r")); + TRY(Core::System::unveil(nullptr, nullptr)); // logout finds the highest session up all nested sessions, and kills it. auto stats = Core::ProcessStatisticsReader::get_all(); @@ -53,10 +43,7 @@ int main(int, char**) sid = parent_sid; } - if (kill(-sid, SIGTERM) == -1) { - perror("kill(2)"); - return 1; - } + TRY(Core::System::kill(-sid, SIGTERM)); return 0; }