initctl.c revision 4afd3348c7506dd1d36305b7bcb9feb8952b9d6b
1559N/A along with systemd; If not, see <http://www.gnu.org/licenses/>.
1559N/A#include "sd-daemon.h"
1559N/A#include "alloc-util.h"
1559N/A#include "bus-error.h"
1559N/A#include "bus-util.h"
1559N/A#include "formats-util.h"
int fd;
const int runlevel;
const char *special;
bool isolate;
} table[] = {
return SPECIAL_KEXEC_TARGET;
return NULL;
const char *target;
const char *mode;
bool isolate = false;
assert(s);
if (!target) {
if (isolate)
r = sd_bus_call_method(
s->bus,
"org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
"org.freedesktop.systemd1.Manager",
&error,
NULL,
assert(s);
case INIT_CMD_RUNLVL:
s->quit = true;
case INIT_CMD_POWERFAIL:
case INIT_CMD_POWERFAILNOW:
case INIT_CMD_POWEROK:
log_warning("Received UPS/power initctl request. This is not implemented in systemd. Upgrade your UPS daemon!");
case INIT_CMD_CHANGECONS:
case INIT_CMD_SETENV:
case INIT_CMD_UNSETENV:
ssize_t l;
assert(f);
f->bytes_read += l;
f->bytes_read = 0;
assert(f);
if (f->server) {
if (f->fd >= 0) {
if (f->server)
free(f);
assert(s);
while (s->fifos)
if (s->bus) {
assert(s);
zero(*s);
if (s->epoll_fd < 0) {
goto fail;
for (i = 0; i < n_sockets; i++) {
Fifo *f;
int fd;
goto fail;
r = -EINVAL;
goto fail;
r = -ENOMEM;
goto fail;
r = -errno;
fifo_free(f);
goto fail;
f->server = s;
s->n_fifos ++;
r = -EIO;
goto fail;
fail:
server_done(s);
Fifo *f;
assert(s);
return -EIO;
r = fifo_process(f);
fifo_free(f);
int r = EXIT_FAILURE, n;
return EXIT_FAILURE;
return EXIT_FAILURE;
log_open();
n = sd_listen_fds(true);
return EXIT_FAILURE;
if (n <= 0 || n > SERVER_FD_MAX) {
return EXIT_FAILURE;
return EXIT_FAILURE;
sd_notify(false,
goto fail;
goto fail;
r = EXIT_SUCCESS;
fail:
sd_notify(false,