mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
user-sessions: modernizations
This commit is contained in:
parent
a658cafa98
commit
fe5af61253
@ -28,7 +28,6 @@
|
|||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
|
|
||||||
int main(int argc, char*argv[]) {
|
int main(int argc, char*argv[]) {
|
||||||
int ret = EXIT_FAILURE;
|
|
||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
log_error("This program requires one argument.");
|
log_error("This program requires one argument.");
|
||||||
@ -42,7 +41,7 @@ int main(int argc, char*argv[]) {
|
|||||||
umask(0022);
|
umask(0022);
|
||||||
|
|
||||||
if (streq(argv[1], "start")) {
|
if (streq(argv[1], "start")) {
|
||||||
int q = 0, r = 0;
|
int r = 0;
|
||||||
|
|
||||||
if (unlink("/run/nologin") < 0 && errno != ENOENT) {
|
if (unlink("/run/nologin") < 0 && errno != ENOENT) {
|
||||||
log_error("Failed to remove /run/nologin file: %m");
|
log_error("Failed to remove /run/nologin file: %m");
|
||||||
@ -50,7 +49,6 @@ int main(int argc, char*argv[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (unlink("/etc/nologin") < 0 && errno != ENOENT) {
|
if (unlink("/etc/nologin") < 0 && errno != ENOENT) {
|
||||||
|
|
||||||
/* If the file doesn't exist and /etc simply
|
/* If the file doesn't exist and /etc simply
|
||||||
* was read-only (in which case unlink()
|
* was read-only (in which case unlink()
|
||||||
* returns EROFS even if the file doesn't
|
* returns EROFS even if the file doesn't
|
||||||
@ -58,27 +56,26 @@ int main(int argc, char*argv[]) {
|
|||||||
|
|
||||||
if (errno != EROFS || access("/etc/nologin", F_OK) >= 0) {
|
if (errno != EROFS || access("/etc/nologin", F_OK) >= 0) {
|
||||||
log_error("Failed to remove /etc/nologin file: %m");
|
log_error("Failed to remove /etc/nologin file: %m");
|
||||||
q = -errno;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r < 0 || q < 0)
|
if (r < 0)
|
||||||
goto finish;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
} else if (streq(argv[1], "stop")) {
|
} else if (streq(argv[1], "stop")) {
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = write_string_file_atomic("/run/nologin", "System is going down.");
|
r = write_string_file_atomic("/run/nologin", "System is going down.");
|
||||||
if (r < 0)
|
if (r < 0) {
|
||||||
log_error("Failed to create /run/nologin: %s", strerror(-r));
|
log_error("Failed to create /run/nologin: %s", strerror(-r));
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
log_error("Unknown verb %s.", argv[1]);
|
log_error("Unknown verb %s.", argv[1]);
|
||||||
goto finish;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
finish:
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user