Branch data Line data Source code
1 : : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : : 3 : : #include <errno.h> 4 : : #include <fcntl.h> 5 : : #include <sys/stat.h> 6 : : #include <sys/types.h> 7 : : #include <unistd.h> 8 : : 9 : : #include "fileio.h" 10 : : #include "fileio-label.h" 11 : : #include "fs-util.h" 12 : : #include "main-func.h" 13 : : #include "log.h" 14 : : #include "selinux-util.h" 15 : : #include "string-util.h" 16 : : 17 : 0 : static int run(int argc, char *argv[]) { 18 : : int r, k; 19 : : 20 [ # # ]: 0 : if (argc != 2) 21 [ # # ]: 0 : return log_error_errno(SYNTHETIC_ERRNO(EINVAL), 22 : : "This program requires one argument."); 23 : : 24 : 0 : log_setup_service(); 25 : : 26 : 0 : umask(0022); 27 : : 28 : 0 : mac_selinux_init(); 29 : : 30 [ # # ]: 0 : if (streq(argv[1], "start")) { 31 : 0 : r = unlink_or_warn("/run/nologin"); 32 : 0 : k = unlink_or_warn("/etc/nologin"); 33 [ # # ]: 0 : if (r < 0) 34 : 0 : return r; 35 : 0 : return k; 36 : : 37 [ # # ]: 0 : } else if (streq(argv[1], "stop")) 38 : 0 : return create_shutdown_run_nologin_or_warn(); 39 : : 40 [ # # ]: 0 : return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown verb '%s'.", argv[1]); 41 : : } 42 : : 43 : 0 : DEFINE_MAIN_FUNCTION(run);