Server IP : 103.119.228.120 / Your IP : 3.143.237.140 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/ssl/share/doc/systemd/ |
Upload File : |
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ #ifndef foosdshutdownhfoo #define foosdshutdownhfoo /*** This file is part of systemd. Copyright 2010 Lennart Poettering systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. systemd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ /* Interface for scheduling and cancelling timed shutdowns. */ #include <inttypes.h> #ifdef __cplusplus extern "C" { #endif #ifndef _sd_packed_ # define _sd_packed_ __attribute__((packed)) #endif typedef enum sd_shutdown_mode { SD_SHUTDOWN_NONE = 0, SD_SHUTDOWN_REBOOT = 'r', SD_SHUTDOWN_POWEROFF = 'P', SD_SHUTDOWN_HALT = 'H', SD_SHUTDOWN_KEXEC = 'K' } sd_shutdown_mode_t; /* Calculate the size of the message as "offsetof(struct * sd_shutdown_command, wall_message) + * strlen(command.wall_message)" */ struct sd_shutdown_command { /* Microseconds after the epoch 1970 UTC */ uint64_t usec; /* H, P, r, i.e. the switches usually passed to * /usr/bin/shutdown to select whether to halt, power-off or * reboot the machine */ sd_shutdown_mode_t mode:8; /* If non-zero, don't actually shut down, just pretend */ unsigned dry_run:1; /* If non-zero, send our wall message */ unsigned warn_wall:1; /* The wall message to send around. Leave empty for the * default wall message */ char wall_message[]; } _sd_packed_; /* The scheme is very simple: * * To schedule a shutdown, simply fill in and send a single * AF_UNIX/SOCK_DGRAM datagram with the structure above suffixed with * the wall message to the socket /run/systemd/shutdownd (leave an * empty wall message for the default shutdown message). To calculate * the size of the message, use "offsetof(struct sd_shutdown_command, * wall_message) + strlen(command.wall_message)". * * To cancel a shutdown, do the same, but send a fully zeroed-out * structure. * * To be notified about scheduled shutdowns, create an inotify watch * on /run/shutdown/. Whenever a file called "scheduled" appears, a * shutdown is scheduled. If it is removed, it is canceled. If it is * replaced, the scheduled shutdown has been changed. The file contains * a simple, environment-like block that contains information about * the scheduled shutdown: * * USEC= * encodes the time for the shutdown in usecs since the epoch UTC, * formatted as a numeric string. * * WARN_WALL= * is 1 if a wall message shall be sent * * DRY_RUN= * is 1 if a dry-run shutdown is scheduled * * MODE= * is the shutdown mode, one of "poweroff", "reboot", "halt", "kexec" * * WALL_MESSAGE= * is the wall message to use, with all special characters escaped in C-style. * * Note that some fields might be missing if they do not apply. * * Note that the file is first written to a temporary file and then * renamed, in order to provide atomic properties for readers: if the * file exists under the name "scheduled", it is guaranteed to be fully * written. A reader should ignore all files in that directory by any * other name. * * Scheduled shutdowns are only accepted from privileged processes, * but anyone may watch the directory and the file in it. */ #ifdef __cplusplus } #endif #endif