Hallo Mitübersetzer, bis Ende letzten Jahres hatten wir die Sysvinit-Übersetzung der relevanten Handbuchseiten denen von Systemd vorgezogen. Jetzt sind die SystemV-Übersetzungen zum „Mutterpaket“ umgezogen. Ich habe die Übersetzungen vervollständigt und stelle hier die Teile vor, die wesentlich geändert oder neu sind - des Kontext wegens immer zu einer Handbuchseite. Teil vier bezieht sich primär auf initctl.5. Für konstruktive Kritik wäre ich sehr dankbar. Viele Grüße Helge -- Dr. Helge Kreutzmann debian@helgefjell.de Dipl.-Phys. http://www.helgefjell.de/debian.php 64bit GNU powered gpg signed mail preferred Help keep free software "libre": http://www.ffii.de/
#. type: TH #: ../initctl.5:17 #, no-wrap msgid "INITCTL" msgstr "INITCTL" #. type: TH #: ../initctl.5:17 #, no-wrap msgid "April 13, 2018" msgstr "13. April 2018" #. type: TH #: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 #, no-wrap msgid "File Formats" msgstr "Dateiformate" #. type: Plain text #: ../initctl.5:20 msgid "" "initctl - /run/initctl is a named pipe which passes commands to SysV init" msgstr "" "initctl - /run/initctl ist eine benannte Pipe, die Befehle an SysV-Init " "übergibt" #. type: Plain text #: ../initctl.5:22 msgid "/run/initctl" msgstr "/run/initctl" #. type: Plain text #: ../initctl.5:28 msgid "" "This document describes the communication pipe set up by SysV B<init> at I</" "run/initctl>. This named pipe allows programs with the proper permissions " "(typically programs run by root have read+write access to the pipe) to send " "signals to the B<init> program (PID 1)." msgstr "" "Dieses Dokument beschreibt die durch SysV B<init> unter I</run/initctl> " "eingerichtete Kommunikations-Pipe. Diese benannte Pipe erlaubt es Programmen " "mit geeigneten Berechtigungen (typischerweise haben Programme, die durch " "Root ausgeführt werden, Lese- und Schreibberechtigungen auf die Pipe) " "Signale an das B<init>-Programm (PID 1) zu senden." #. type: Plain text #: ../initctl.5:32 msgid "" "The B<init> manual page has, up until recently, simply stated that people " "wishing to understand how to send messages to B<init> should read the init " "program's source code, but that is not usually practical." msgstr "" "In der Handbuchseite von B<init> wurde bis vor kurzem noch empfohlen, dass " "Benutzer, die verstehen wollen, wie Meldungen an B<init> gesendet werden, " "doch den Quellcode von I<init> lesen sollten. Dies ist aber nicht wirklich " "praxistauglich." #. type: Plain text #: ../initctl.5:36 msgid "" "Messages sent to the pipe to talk to B<init> must have a special format. " "This format is defined as a C structure and the technical break-down is " "presented here:" msgstr "" "Nachrichten, die an die Pipe zur Kommunikation mit B<init> gesandt werden, " "müssen einem bestimmten Format folgen. Dieses Format ist als eine C-Struktur " "definiert und die technische Detailansicht wird im folgenden dargestellt:" #. type: Plain text #: ../initctl.5:44 #, no-wrap msgid "" "/*\n" " * Because of legacy interfaces, \"runlevel\" and \"sleeptime\"\n" " * aren't in a separate struct in the union.\n" " *\n" " * The weird sizes are because init expects the whole\n" " * struct to be 384 bytes.\n" " */\n" msgstr "" "/*\n" " * Aufgrund veralteter Schnittstellen sind »runlevel« und »sleeptime«\n" " * nicht im gleichen Struct in der Union.\n" " *\n" " * Die komischen Größen stammen daher, dass Init erwartet, dass die\n" " * gesamte Struct 384 byte groß ist.\n" " */\n" #. type: Plain text #: ../initctl.5:55 #, no-wrap msgid "" "struct init_request {\n" " int magic; /* Magic number */\n" " int cmd; /* What kind of request */\n" " int runlevel; /* Runlevel to change to */\n" " int sleeptime; /* Time between TERM and KILL */\n" " union {\n" " struct init_request_bsd bsd;\n" " char data[368];\n" " } i;\n" "};\n" msgstr "" "struct init_request {\n" " int magic; /* Magische Zahl */\n" " int cmd; /* Art der Anfrage */\n" " int runlevel; /* Ziel-Runlevel */\n" " int sleeptime; /* Zeit zwischen TERM und KILL */\n" " union {\n" " struct init_request_bsd bsd;\n" " char data[368];\n" " } i;\n" "};\n" #. type: Plain text #: ../initctl.5:61 msgid "" "Let's go through the init_request structure one line at a time. The first " "variable, the \"magic\" number must be of the value 0x03091969. The B<init> " "program then knows that only programs with root access which send this magic " "number are authorized to communicate with init." msgstr "" "Lassen Sie uns die init_request-Struktur zeilenweise betrachten. Die erste " "Variable, die »magische« Zahl muss den Wert 0x03091969 haben. Das Programm " "B<init> weiß dann, dass nur Programme mit Root-Zugriff, die diese magische " "Zahl senden, zur Kommunikation mit Init authorisiert sind." # FIXME init → B<init> #. type: Plain text #: ../initctl.5:64 msgid "" "The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> " "variable tells init what we want it to do. Here are the possible options:" msgstr "" "Die Variable I<cmd> ist (derzeit) ein Wert im Bereich 0-8. Diese Variable " "I<cmd> teilt B<init> mit, was getan werden soll. Hier sind die möglichen " "Optionen:" #. type: Plain text #: ../initctl.5:66 msgid "1 - Set the current runlevel, specified by the runlevel variable." msgstr "" "1 - Den aktuellen Runlevel setzen, festgelegt durch die Variable »runlevel«." #. type: Plain text #: ../initctl.5:68 msgid "" "2 - The power will fail soon (probably low battery) prepare to shutdown." msgstr "" "2 - Der Strom wird bald ausfallen (möglicherweise wegen eines niedrigen " "Batteriestandes), vorbreiten zum Herunterfahren." #. type: Plain text #: ../initctl.5:70 msgid "3 - The power is failing, do shutdown immediately." msgstr "3 - Der Strom fällt aus, sofort herunterfahren." #. type: Plain text #: ../initctl.5:72 msgid "4 - The power is okay, cancel shutdown." msgstr "4 - Der Strom ist ok, Herunterfahren abbrechen." # FIXME Why nowrap? #. type: Plain text #: ../initctl.5:75 #, no-wrap msgid "" "6 - Set an environment variable to a value to be specified in \n" " the I<data> variable of this structure.\n" msgstr "" "6 - Setzt eine Umgebungsvarialbe auf einen Wert, der in der Variablen\n" " I<data> in dieser Struktur festgelegt ist.\n" #. type: Plain text #: ../initctl.5:78 msgid "" "Other I<cmd> options may be added to B<init> later. For example, command " "values 0, 5 and 7 are defined but currently not implemented." msgstr "" "Andere Optionen I<cmd> können später zu B<init> hinzugefügt werden. " "Beispielsweise sind die Befehlswerte 0, 5 und 7 definiert, derzeit aber " "nicht implementiert." #. type: Plain text #: ../initctl.5:80 msgid "The I<runlevel> variable will specify the runlevel to switch to (0-6)." msgstr "" "Die Variable I<runlevel> legt den Runlevel fest, zu dem gewechselt werden soll " "(0-6)." #. type: Plain text #: ../initctl.5:84 msgid "" "The I<sleeptime> variable is to be used when we want to tell B<init> to " "change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> " "during the shutdown process. Changing this at run time is not yet " "implemented." msgstr "" "Die Variable I<sleeptime> wird verwandt, wenn B<init> mitgeteilt werden " "soll, die Wartezeit zwischen dem Senden von B<SIGTERM> and B<SIGKILL> " "während des Herunterfahrprozesses zu ändern. Eine Änderung zur Laufzeit ist " "noch nicht implementiert." # FIXME init → B<init> #. type: Plain text #: ../initctl.5:88 msgid "" "The I<data> variable (in the union) can be used to pass misc data which init " "might need to process our request. For example, when setting environment " "variables." msgstr "" "Die Variable I<data> (in der Union) kann zur Übergabe verschiedener Daten, " "die B<init> benötigen könnte, um die Anfrage zu bearbeiten, verwandt werden. " "Beispielsweise zum Setzen von Umgebungsvariablen." #. type: Plain text #: ../initctl.5:92 msgid "" "When setting an environment variable through B<init>'s I</run/initctl> pipe, " "the data variable should have the format I<VARIABLE>=I<VALUE>. The string " "should be terminated with a NULL character." msgstr "" "Beim Setzen einer Umgebungsvariablen mittels der Pipe I</run/initctl> von " "B<init> sollte die Variable I<data> das Format I<VARIABLE>=I<WERT> haben. " "Die Zeichenkette sollte mit einem NULL-Zeichen beendet werden." #. type: Plain text #: ../initctl.5:99 msgid "" "The following C code example shows how to send a set environment variable " "request to the B<init> process using the I</run/initctl> pipe. This example " "is simplified and skips the error checking. A more complete example can be " "found in the shutdown.c program's B<init_setnv>() function." msgstr "" "Das folgende C-Code-Beispiel zeigt, wie eine Umgebungsvariablen-Anfrage " "mittels der Pipe I</run/initctl> an den B<init>-Prozess gesandt wird. Dieses " "Beispiel ist vereinfacht und überspringt die Fehlerprüfung. Ein " "vollständigeres Beispiel kann in der Funktion B<init_setnv>() im Programm " "shutdown.c gefunden werden." #. type: Plain text #: ../initctl.5:103 #, no-wrap msgid "" "struct init_request request; /* structure defined above */\n" "int fd; /* file descriptor for pipe */\n" msgstr "" "struct init_request request; /* oben definierte Struktur */\n" "int fd; /* Dateideskriptor für die Pipe */\n" #. type: Plain text #: ../initctl.5:108 #, no-wrap msgid "" "memset(&request, 0, sizeof(request)); /* initialize structure */\n" "request.magic = 0x03091969; /* magic number required */\n" "request.cmd = 6; /* 6 is to set a variable */\n" "sprintf(request.data, \"VARIABLE=VALUE\"); /* set VAR to VALUE in init */\n" msgstr "" "memset(&request, 0, sizeof(request)); /* Struktur initialisieren */\n" "request.magic = 0x03091969; /* benötigte magische Zahl */\n" "request.cmd = 6; /* 6 ist zum Setzen einer Variablen */\n" "sprintf(request.data, \"VARIABLE=WERT\"); /* setzt VAR auf WERT in init */\n" #. type: Plain text #: ../initctl.5:116 #, no-wrap msgid "" "if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\n" "{ \n" " size_t s = sizeof(request); /* size of structure to write */\n" " void *ptr = &request; /* temporary pointer */\n" " write(fd, ptr, s); /* send structure to the pipe */\n" " close(fd); /* close the pipe when done */\n" "}\n" msgstr "" "if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* Pipe zum Schreiben öffnen */\n" "{ \n" " size_t s = sizeof(request); /* Größe der zu schreibenden Struktur */\n" " void *ptr = &request; /* temporärer Zeiger */\n" " write(fd, ptr, s); /* Struktur an die Pipe schicken */\n" " close(fd); /* Pipe schließen, wenn fertig */\n" "}\n" #. type: Plain text #: ../initctl.5:125 msgid "" "Usually the I</run/initctl> pipe would only be used by low-level programs to " "request a power-related shutdown or change the runlevel, like B<telinit> " "would do. Most of the time there is no need to talk to B<init> directly, but " "this gives us an extendable approach so B<init> can be taught how to learn " "more commands." msgstr "" "Normalerweise würde die Pipe I</run/initctl> nur von systemnahen Programmen " "zur Anfrage von Strom-bezogenen Herunterfahren oder Änderungen des Runlevels " "verwandt, wie bei B<telinit>. Meistens ist es nicht notwendig, direkt mit " "B<init> zu kommunizieren. Dies ermöglicht aber einen erweiterbaren Ansatz, " "so dass B<init> beigebracht werden kann, weitere Befehle zu lernen." #. type: Plain text #: ../initctl.5:130 msgid "" "The commands passed through the I</run/initctl> pipe must be sent in a " "specific binary format and be of a specific length. Larger data structures " "or ones not using the proper format will be ignored. Typically, only root " "has the ability to write to the initctl pipe for security reasons." msgstr "" "Die über die Pipe I</run/initctl> gesandten Befehle müssen in einem " "bestimmten Binärformat und mit einer bestimmten Länge gesandt werden. " "Größere Datenstrukturen oder solche, die nicht das korrekte Format " "verwenden, werden ignoriert. Typischerweise hat aus Sicherheitsgründen nur " "der Systemverwalter die Möglichkeit, in die initctl-Pipe zu schreiben." # FIXME init → B<init> #. type: Plain text #: ../initctl.5:138 msgid "" "The I</run/initctl> pipe can be closed by sending init (PID 1) the " "B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be " "useful for making sure B<init> is not keeping any files open. However, when " "the pipe is closed, B<init> no longer receives signals, such as those sent " "by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, " "B<init> cannot change its runlevel directly. The pipe may be re-opened by " "sending B<init> (PID 1) the B<SIGUSR1> signal." msgstr "" "Die Pipe I</run/initctl> kann durch Senden des Signals B<SIGUSR2> an B<init> " "(PID 1) geschlossen werden. Damit wird die Pipe geschlossen und verbleibt " "geschlossen. Das ist nützlich, um sicherzustellen, dass B<init> keine " "Dateien offenbehält. Wenn die Pipe allerdings geschlossen ist, dann " "empfängt B<init> keine Signale mehr, wie die von B<shutdown>(8) oder " "B<telinit>(8) gesandten. Mit anderen Worten: Wird die Pipe geschlossen, kann " "B<init> seinen Runlevel nicht mehr direkt ändern. Die Pipe kann wieder " "geöffnet werden, indem B<init> (PID 1) das Signal B<SIGUSR1> gesandt wird." #. type: Plain text #: ../initctl.5:142 msgid "" "If the I</run/initctl> pipe is closed then it may still be possible to bring " "down the system using the B<shutdown>(8) command's B<-n> flag, but this is " "not always clean and not recommended." msgstr "" "Falls die Pipe I</run/initctl> geschlossen ist, könnte das System immernoch " "über den Schalter B<-n> von B<shutdown>(8) heruntergebracht werden; dies ist " "aber nicht sauber und wird nicht empfohlen." #. type: Plain text #: ../initctl.5:146 msgid "/run/initctl /sbin/init" msgstr "/run/initctl /sbin/init" # FIXME superfluous whitespace #. type: Plain text #: ../initctl.5:151 msgid "E<.MT jsmith@\\:resonatingmedia\\:.com > Jesse Smith E<.ME>" msgstr "E<.MT jsmith@\\:resonatingmedia\\:.com > Jesse Smith E<.ME>" #. type: Plain text #: ../initctl.5:152 msgid "B<init>(8)" msgstr "B<init>(8)"
Attachment:
signature.asc
Description: PGP signature