[
  {
    "path": ".gitignore",
    "content": "*.o\n*.tar.*\n"
  },
  {
    "path": "COPYING",
    "content": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n\t\t\t    Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users.  This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it.  (Some other Free Software Foundation software is covered by\nthe GNU Lesser General Public License instead.)  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n  To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have.  You must make sure that they, too, receive or can get the\nsource code.  And you must show them these terms so they know their\nrights.\n\n  We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n  Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware.  If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n  Finally, any free program is threatened constantly by software\npatents.  We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary.  To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n\t\t    GNU GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License.  The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage.  (Hereinafter, translation is included without limitation in\nthe term \"modification\".)  Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n  1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n  2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) You must cause the modified files to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    b) You must cause any work that you distribute or publish, that in\n    whole or in part contains or is derived from the Program or any\n    part thereof, to be licensed as a whole at no charge to all third\n    parties under the terms of this License.\n\n    c) If the modified program normally reads commands interactively\n    when run, you must cause it, when started running for such\n    interactive use in the most ordinary way, to print or display an\n    announcement including an appropriate copyright notice and a\n    notice that there is no warranty (or else, saying that you provide\n    a warranty) and that users may redistribute the program under\n    these conditions, and telling the user how to view a copy of this\n    License.  (Exception: if the Program itself is interactive but\n    does not normally print such an announcement, your work based on\n    the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n    a) Accompany it with the complete corresponding machine-readable\n    source code, which must be distributed under the terms of Sections\n    1 and 2 above on a medium customarily used for software interchange; or,\n\n    b) Accompany it with a written offer, valid for at least three\n    years, to give any third party, for a charge no more than your\n    cost of physically performing source distribution, a complete\n    machine-readable copy of the corresponding source code, to be\n    distributed under the terms of Sections 1 and 2 above on a medium\n    customarily used for software interchange; or,\n\n    c) Accompany it with the information you received as to the offer\n    to distribute corresponding source code.  (This alternative is\n    allowed only for noncommercial distribution and only if you\n    received the program in object code or executable form with such\n    an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it.  For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable.  However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n  5. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n  6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n  7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded.  In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n  9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation.  If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n  10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission.  For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this.  Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n\t\t\t    NO WARRANTY\n\n  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n\t\t     END OF TERMS AND CONDITIONS\n\n\t    How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C) year name of author\n    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n  <signature of Ty Coon>, 1 April 1989\n  Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs.  If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.\n"
  },
  {
    "path": "COPYRIGHT",
    "content": "Sysvinit is Copyright (C) 1991-2004 Miquel van Smoorenburg\n    Updated Copyright (C) 2018 Jesse Smith\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program; if not, write to the Free Software\n    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\n\nOn Debian GNU/Linux systems, the complete text of the GNU General\nPublic License can be found in `/usr/share/common-licenses/GPL-2'.\n\nSend patches to sysvinit-devel@nongnu.org\n\n"
  },
  {
    "path": "Makefile",
    "content": "PACKAGE=sysvinit\nVERSION=$(shell sed -rn '1s/.*[[:blank:]]\\((.*)\\)[[:blank:]].*/\\1/p' doc/Changelog)\n\nall install clean distclean:\n\t@rm -f $(PACKAGE)-$(VERSION).tar.xz $(PACKAGE)-$(VERSION).tar.xz.sig\n\t$(MAKE) VERSION=$(VERSION) -C man $@\n\t$(MAKE) VERSION=$(VERSION) -C src $@\n\nGITLOGIN=$(shell git remote -v | head -n 1 | cut -f 1 -d '@' | sed 's/origin\\t//g')\noverride TMP:=$(shell mktemp -du $(VERSION).XXXXXXXX)\noverride TARBALL:=$(TMP)/$(PACKAGE)-$(VERSION).tar.xz\noverride SFTPBATCH:=$(TMP)/$(VERSION)-sftpbatch\nSOURCES=contrib  COPYING  COPYRIGHT  doc  Makefile  man  README  src\n\ndist: $(TARBALL).sig\n\t@cp $(TARBALL) .\n\t@cp $(TARBALL).sig .\n\t@echo \"tarball $(PACKAGE)-$(VERSION).tar.xz ready\"\n\trm -rf $(TMP)\n\nupload: $(SFTPBATCH)\n\techo @sftp -b $< $(GITLOGIN)@dl.sv.nongnu.org:/releases/$(PACKAGE)\n\trm -rf $(TMP)\n\n$(SFTPBATCH): $(TARBALL).sig\n\t@echo progress > $@\n\t@echo put $(TARBALL) >> $@\n\t@echo chmod 664 $(notdir $(TARBALL)) >> $@\n\t@echo put $(TARBALL).sig >> $@\n\t@echo chmod 664 $(notdir $(TARBALL)).sig >> $@\n\t@echo rm  $(PACKAGE)-latest.tar.bz2 >> $@\n\t@echo symlink $(notdir $(TARBALL)) $(PACKAGE)-latest.tar.bz2 >> $@\n\t@echo quit >> $@\n\n$(TARBALL).sig: $(TARBALL)\n\t@gpg -q -ba --use-agent -o $@ $<\n\n$(TARBALL): $(TMP)/$(PACKAGE)-$(VERSION)\n\t@tar --exclude=.git --owner=nobody --group=nogroup -cJf $@ -C $(TMP) $(PACKAGE)-$(VERSION)\n\n$(TMP)/$(PACKAGE)-$(VERSION): distclean\n\t@mkdir -p $(TMP)/$(PACKAGE)-$(VERSION)\n\t@cp -R $(SOURCES) $(TMP)/$(PACKAGE)-$(VERSION)/ \n\t@chmod -R a+r,u+w,og-w $@\n\t@find $@ -type d | xargs -r chmod a+rx,u+w,og-w\n\n"
  },
  {
    "path": "README",
    "content": "# README for SysV init\n\n## Please note this project has migrated to CodeBerg: https://codeberg.org/thejessesmith/sysvinit\n\nSysV init is a classic initialization program (PID 1) for GNU/Linux and\nother UNIX/POSIX systems. It is designed to be small, simple and to\nstay out of the way.\n\nInit is the parent (or grandparent) of all other processes on the\nsystem. It kicks off the starting of other system services and\ncan act as a parent process to services which no longer have an\nactive parent process.\n\nSysV init uses the concept of runlevels. A runlevel is a configuration of the \nsystem which allows only a selected group of processes to exist. \nThe processes spawned by init for each of these runlevels are defined in the \n/etc/inittab file. Init can be in one of eight runlevels. The runlevel is\nchanged by the administrator running the telinit command which selects\nwhich runlevel we want to use.\n       \nMore information on init, runlevels and switching between them can be found\nin the init manual page. (See \"man init\".)\n\ncontrib\t\tUnofficial stuff, add-on programs\ndoc\t\tDocumentation\nman\t\tManual pages\nsrc\t\tSource code\n\nFor instructions on building and installing SysV init, please\nsee the \"doc/Install\" file.\n\nSysV init releases are signed with one of two keys, depending on the build machine.\nThese keys are public keys A573ED5E687A40F89D30E6BE2A72EB41906F8E49 \nand 5A2DC686CDC5D6087D88C198351F75FA45D53656. \nBoth of these keys can be fetched from the Savannah mirror at:\n\nhttps://download.savannah.nongnu.org/releases/sysvinit/\n\nThe keys are also available on the public key server https://keys.openpgp.org/\n\n"
  },
  {
    "path": "contrib/alexander.viro",
    "content": "I proposed moving some stuff to a separate file, such as the\nre-exec routines. Alexander wrote:\n\n\nAccording to Alexander Viro <viro@math.psu.edu>:\n> As for the code separation - I think it's nice. Actually, read_inittab()\n> with get_part() and newFamily are also pretty separatable. Another good\n> set is any(), spawn(), startup(), spawn_emerg() and start_if_needed().\n> BTW, fail_check();process_signals(); is equivalent to process_signal();\n> fail_check();. I think that swapping them (in main loop) would be a good\n> idea - then we can move fail_check() into start_if_needed(). And one more\n> - I'ld propose to move start_if_needed to the beginning of the main loop,\n> as in\n>       foo();\n>       while(1) { bar();foo();\n> #if 0\n>               baz();\n> #endif\n>       }\n> to\n>       while(1) { foo();bar();\n> #if 0\n>               baz();\n> #endif\n>       }\n>\n>\n> What do you think about it?\n\n"
  },
  {
    "path": "contrib/migrate-svn-git",
    "content": "#!/bin/sh\n#\n# Script to migrate sysvinit project source code from subversion to git.\n# Used february 2018.\n\nauthorsmap=$(tempfile)\ncat > $authorsmap <<EOF\npere = Petter Reinholdtsen <pere@hungry.com>\nwfink = Werner Fink <werner@suse.de>\nEOF\n\nfor p in sysvinit startpar insserv; do\n    git svn clone http://svn.savannah.nongnu.org/svn/sysvinit/$p \\\n\t--authors-file=$authorsmap \\\n\t--no-metadata \\\n\t--tags=tags \\\n\t--trunk=trunk \\\n\t--prefix=$p/ \\\n\t$p-git\n\n    (\n\tcd $p-git\n\tfor tag in `git branch -r | grep \"tags/\" | sed \"s/ $p\\/tags\\///\"`; do\n            git tag -a -m\"Converting SVN tags\" $tag refs/remotes/$p/tags/$tag\n\tdone\n        if [ \"sysvinit\" = \"$p\" ]; then\n            remote=$p.git\n        else\n            remote=sysvinit/$p.git\n        fi\n        git remote add origin ssh://git.savannah.gnu.org:/srv/git/$remote\n    )\ndone\nrm $authorsmap\n"
  },
  {
    "path": "contrib/notify-pam-dead.patch",
    "content": "Index: src/init.sample\n===================================================================\n--- src/init.sample\t(revision 0)\n+++ src/init.sample\t(revision 0)\n@@ -0,0 +1,9 @@\n+#%PAM-1.0\n+#\n+# The PAM configuration file for /sbin/init\n+# Used for updating the lastlog logging file\n+#\n+auth\t    sufficient\tpam_rootok.so\n+account\t    include\tcommon-account\n+session\t    include\tcommon-session\n+session\t    requisite\tpam_lastlog.so silent\nIndex: src/init.c\n===================================================================\n--- src/init.c\t(revision 56)\n+++ src/init.c\t(working copy)\n@@ -76,6 +76,10 @@\n #include \"reboot.h\"\n #include \"set.h\"\n \n+#ifdef USE_PAM\n+extern void notify_pam_dead_session(const char *id);\n+#endif\n+\n #ifndef SIGPWR\n #  define SIGPWR SIGUSR2\n #endif\n@@ -1129,6 +1133,9 @@\n \t\t\t}\n \t\t\tdup(f);\n \t\t\tdup(f);\n+#ifdef USE_PAM\n+\t\t\tnotify_pam_dead_session(ch->id);\n+#endif\n \t\t}\n \n \t\t/*\n@@ -1548,6 +1555,9 @@\n \t\t    INITDBG(L_VB, \"Updating utmp for pid %d [id %s]\",\n \t\t\t\tch->pid, ch->id);\n \t\t    ch->flags &= ~RUNNING;\n+#ifdef USE_PAM\n+\t\t    notify_pam_dead_session(ch->id);\n+#endif\n \t\t    if (ch->process[0] != '+')\n \t\t    \twrite_utmp_wtmp(\"\", ch->id, ch->pid, DEAD_PROCESS, NULL);\n \t\t}\n@@ -2009,6 +2019,9 @@\n \t    if (ch->flags & ZOMBIE) {\n \t\tINITDBG(L_VB, \"Child died, PID= %d\", ch->pid);\n \t\tch->flags &= ~(RUNNING|ZOMBIE|WAITING);\n+#ifdef USE_PAM\n+\t\tnotify_pam_dead_session(ch->id);\n+#endif\n \t\tif (ch->process[0] != '+')\n \t\t\twrite_utmp_wtmp(\"\", ch->id, ch->pid, DEAD_PROCESS, NULL);\n \t    }\n@@ -2453,6 +2466,9 @@\n \t    if (ch->flags & ZOMBIE) {\n \t\tINITDBG(L_VB, \"Child died, PID= %d\", ch->pid);\n \t\tch->flags &= ~(RUNNING|ZOMBIE|WAITING);\n+#ifdef USE_PAM\n+\t\tnotify_pam_dead_session(ch->id);\n+#endif\n \t\tif (ch->process[0] != '+')\n \t\t\twrite_utmp_wtmp(\"\", ch->id, ch->pid, DEAD_PROCESS, NULL);\n \t    }\nIndex: src/utmp.c\n===================================================================\n--- src/utmp.c\t(revision 51)\n+++ src/utmp.c\t(working copy)\n@@ -34,10 +34,18 @@\n #include <string.h>\n #include <utmp.h>\n \n+#if defined(USE_PAM) && defined(INIT_MAIN)\n+#  include <security/pam_appl.h>\n+#  include <security/pam_misc.h>\n+#endif\n+\n #include \"init.h\"\n #include \"initreq.h\"\n #include \"paths.h\"\n \n+#ifndef _PATH_DEV\n+# define _PATH_DEV\t\"/dev/\"\n+#endif\n \n #if defined(__GLIBC__)\n #  if (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0) && defined(__powerpc__)\n@@ -127,9 +135,9 @@\n \tstrncpy(utmp.ut_name, user, sizeof(utmp.ut_name));\n \tstrncpy(utmp.ut_id  , id  , sizeof(utmp.ut_id  ));\n \tstrncpy(utmp.ut_line, line, sizeof(utmp.ut_line));\n-        \n-        /* Put the OS version in place of the hostname */\n-        if (uname(&uname_buf) == 0)\n+\t\n+\t/* Put the OS version in place of the hostname */\n+\tif (uname(&uname_buf) == 0)\n \t\tstrncpy(utmp.ut_host, uname_buf.release, sizeof(utmp.ut_host));\n \n #if HAVE_UPDWTMP\n@@ -262,3 +270,75 @@\n \twrite_wtmp(user, id, pid, type, line && line[0] ? line : oldline);\n }\n \n+#if defined(USE_PAM) && defined(INIT_MAIN)\n+static pam_handle_t *pamh = NULL;\n+# ifdef __GNUC__\n+static int\n+null_conv(int num_msg, const struct pam_message **msgm,\n+\t  struct pam_response **response __attribute__((unused)),\n+\t  void *appdata_ptr __attribute__((unused)))\n+# else\n+static int\n+null_conv(int num_msg, const struct pam_message **msgm,\n+\t  struct pam_response **response, void *appdata_ptr)\n+# endif\n+{\n+\tint i;\n+\tfor (i = 0; i < num_msg; i++) {\n+\t\tconst struct pam_message *msg = msgm[i];\n+\t\tif (msg == (const struct pam_message*)0)\n+\t\t\tcontinue;\n+\t\tif (msg->msg == (char*)0)\n+\t\t\tcontinue;\n+\t\tswitch (msg->msg_style) {\n+\t\tcase PAM_ERROR_MSG:\n+\t\tcase PAM_TEXT_INFO:\n+\t\t\tinitlog(L_VB, \"pam_message %s\", msg->msg);\n+\t\tdefault:\n+\t\t\tbreak;\n+\t\t}\n+\t}\n+\treturn 0;\n+}\n+static const struct pam_conv conv = { null_conv, NULL };\n+# define PAM_FAIL_CHECK(func, args...)  \\\n+\t{ \\\n+\t\tif ((pam_ret = (func)(args)) != PAM_SUCCESS) { \\\n+\t\t\tinitlog(L_VB, \"%s\", pam_strerror(pamh, pam_ret)); \\\n+\t\t\tgoto pam_error; \\\n+\t\t} \\\n+\t}\n+\n+void notify_pam_dead_session(const char *id)\n+{\n+\tstruct utmp *oldut, ut;\n+\n+\tsetutent();\n+\n+\tmemset(&ut, 0, sizeof(ut));\n+\tut.ut_type = DEAD_PROCESS;\n+\tstrncpy(ut.ut_id, id, sizeof(ut.ut_id));\n+\n+\tif ((oldut = getutid(&ut)) && (oldut->ut_type == USER_PROCESS)) {\n+\t\tint pam_ret;\n+\t\tchar tty[UT_LINESIZE+ strlen(_PATH_DEV) + 1];\n+\n+\t\tif (strncmp(oldut->ut_line, _PATH_DEV, strlen(_PATH_DEV)))\n+\t\t\tsnprintf(tty, sizeof(tty), _PATH_DEV \"%.*s\",\n+\t\t\t\t UT_LINESIZE, oldut->ut_line);\n+\t\telse\n+\t\t\tsnprintf(tty, sizeof(tty), \"%.*s\",\n+\t\t\t\t UT_LINESIZE, oldut->ut_line);\n+\n+\t\tPAM_FAIL_CHECK(pam_start, \"init\", oldut->ut_user, &conv, &pamh);\n+\t\tPAM_FAIL_CHECK(pam_set_item, pamh, PAM_TTY, tty);\n+\t\tPAM_FAIL_CHECK(pam_set_item, pamh, PAM_RHOST, oldut->ut_host);\n+\t\tPAM_FAIL_CHECK(pam_close_session, pamh, PAM_SILENT);\n+\tpam_error:\n+\t\tpam_end(pamh, pam_ret);\n+\t}\n+\n+\tendutent();\n+}\n+#endif /* USE_PAM && INIT_MAIN */\n+\nIndex: src/Makefile\n===================================================================\n--- src/Makefile\t(revision 58)\n+++ src/Makefile\t(working copy)\n@@ -8,7 +8,7 @@\n # Version:\t@(#)Makefile  2.85-13  23-Mar-2004  miquels@cistron.nl\n #\n \n-CPPFLAGS =\n+CPPFLAGS = -DUSE_PAM\n CFLAGS\t?= -ansi -O2 -fomit-frame-pointer\n override CFLAGS += -W -Wall -D_GNU_SOURCE\n STATIC\t=\n@@ -79,6 +79,13 @@\n endif\n \n # Additional libs for GNU libc.\n+ifneq ($(findstring -DUSE_PAM,$(CPPFLAGS)),)\n+  INITLIBS\t+= -lpam\n+  PAMDOTD\t= /etc/pam.d\n+  PAMINIT\t= $(PAMDOTD)/init\n+endif\n+\n+# Additional libs for GNU libc.\n ifneq ($(wildcard /usr/lib*/libcrypt.a),)\n   SULOGINLIBS\t+= -lcrypt\n endif\n@@ -153,6 +160,11 @@\n \t\t\t$(STRIP) $$i ; \\\n \t\t\t$(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \\\n \t\tdone\n+ifneq ($(findstring -DUSE_PAM,$(CPPFLAGS)),)\n+\t\t$(INSTALL_DIR) $(ROOT)$(PAMDOTD)\n+\t\ttest -s $(ROOT)$(PAMINIT) || \\\n+\t\t$(INSTALL_DATA) init.sample $(ROOT)$(PAMINIT)\n+endif\n \t\t# $(INSTALL_DIR) $(ROOT)/etc/\n \t\t# $(INSTALL_EXEC) initscript.sample $(ROOT)/etc/\n \t\tln -sf halt $(ROOT)/sbin/reboot\n"
  },
  {
    "path": "contrib/sysd2v.sh",
    "content": "#!/bin/sh\n# sysd2v v0.3  --  systemd unit to sysvinit script converter\n# Copyright (C) 2019  Trek http://www.trek.eu.org/devel/sysd2v\n# distributed under the terms of the GNU General Public License 3\n\n\nnl=\"\n\"\n\n# read a systemd unit file and set variables named ini_{section}_{key}\n# usage: read_unit filename instance\n# filename\tservice unit configuration file, '-' to read from stdin\n# instance\tinstance name for template units\nread_unit()\n{\n  filename=$1\n  instance=$2\n\n  if [ \"$filename\" != - ]\n  then\n    inifile_unit_name=${filename##*/}\n    inifile_unit_name=${inifile_unit_name%.*}\n  fi\n\n  rm_comm='/^[#;]/d'\n  concat=':l; /\\\\$/ { N; s/[[:space:]]*\\\\\\n/ /; tl }'\n  subst_inst=\"s/%[Ii]/$instance/g\"\n  unit=$(\n    cat \"$filename\" |\n    sed \"$rm_comm\" |\n    sed \"$concat;$subst_inst\"\n  )\n  section_list=$(\n    printf %s \"$unit\" |\n    sed -n 's/^\\[\\([[:alnum:]]\\+\\)\\].*/\\1/p'\n  )\n  oldifs=$IFS\n  IFS=$nl\n\n  for section in $section_list\n  do\n    get_sect='/^\\['\"$section\"'\\]/,/^\\[.\\+\\]/'\n    key_list=$(\n      printf %s \"$unit\" |\n      sed -n \"$get_sect\"'s/^\\([[:alnum:]]\\+\\)[[:space:]]*=.*/\\1/p' |\n      sort -u\n    )\n\n    for key in $key_list\n    do\n      val=$(\n        printf %s \"$unit\" |\n        sed -n \"$get_sect\"'s/^'\"$key\"'[[:space:]]*=[[:space:]]*\\(.*\\)/\\1/p'\n      )\n      var=$(\n        echo \"${section}_$key\" |\n        tr '[:upper:]' '[:lower:]'\n      )\n      eval ini_$var=\\$val\n      [ -n \"$debug\" ] && echo \"ini_$var=$val\" >&2\n    done\n  done\n\n  IFS=$oldifs\n}\n\n\n# read a systemd configuration value and write its prefix to stdout\n# usage: get_prefix val\n# val\t\tsystemd configuration value\nget_prefix () { printf %s \"$1\" | sed -n 's/^\\([-@:+!|]*\\).*/\\1/p'; }\n\n\n# read a boolean value and returns true or false\n# usage: is_true val\n# val\t\tboolean value\nis_true () { case \"$1\" in 1|[Oo][Nn]|[Tt]*|[Yy]*) true;; *) false; esac }\n\n\n# read systemd services list and write LSB facilities to stdout\n# usage: get_provides services\n# services\tlist of service units\nget_provides ()\n{\n  lst=\n  for dep in $1\n  do\n    lst=${lst:+$lst }${dep%.service}\n  done\n  printf %s \"$lst\"\n}\n\n\n# read systemd units list and write LSB facilities to stdout\n# usage: get_depends dependencies [ignores]\n# dependencies\tlist of required units\n# ignores\tfacilities to ignore\nget_depends ()\n{\n  lst=\n  for dep in $1\n  do\n    d=\n    case $dep in\n      local-fs-pre.target) d=mountkernfs;;\n      time-sync.target) d=\\$time;;\n      systemd-modules-load.service) d=kmod;;\n      local-fs.target|network-pre.target) d=\\$local_fs;;\n      systemd-sysctl.service) d=procps;;\n      network.target|network-online.target|systemd-networkd.service)\n        d=\\$network;;\n      nss-lookup.target) d=\\$named;;\n      rpcbind.target|remote-fs-pre.target) d=\\$portmap;;\n      remote-fs.target|sysinit.target|basic.target) d=\\$remote_fs;;\n      syslog.service) d=\\$syslog;;\n      boot-complete.target|multi-user.target|default.target) d=\\$all;;\n      *.service) d=${dep%.service};;\n      *) echo \"WARNING: unsupported target '$dep'\" >&2\n    esac\n\n    ign=${2:+$2 }$lst\n    [ -z \"$ign\" -o -n \"${ign%%*\"$d\"*}\" ] &&\n      lst=${lst:+$lst }$d\n  done\n\n  printf %s \"$lst\"\n}\n\n\n# read LSB facilities list and write runlevel to stdout\n# usage: get_runlevel facilities\n# facilities\tlist of required facilities\nget_runlevel ()\n{\n  case $1 in\n    *\\$remote_fs*) echo 2 3 4 5;;\n    *) echo S\n  esac\n}\n\n\n# write a list of environment files to be executed\n# usage: write_env list\n# list\t\tfiles separated by newlines, with prefix (-)\nwrite_env ()\n{\n  oldifs=$IFS\n  IFS=$nl\n\n  for env in $1\n  do\n    pre=$(get_prefix \"$env\")\n    noerr=\n\n    [ -n \"$pre\" -a -z \"${pre%%*-*}\" ] && noerr=\"[ -r ${env#$pre} ] && \"\n\n    printf '%s\\n' \"$noerr. ${env#$pre}\"\n  done\n\n  IFS=$oldifs\n}\n\n\n# write an environment variable containing paths\n# usage: write_path name prefix list\n# name\t\tname of the environment variable\n# prefix\tpath prefix to append directories\n# list\t\tpaths separated by spaces or newlines\nwrite_path ()\n{\n  lst=\n  for dir in $3\n  do\n    lst=${lst:+$lst:}$2/$dir\n  done\n\n  [ -z \"$3\" ] || printf '%s=%s\\n' $1 $lst\n}\n\n\n# write a list of directories to be created\n# usage: write_install prefix list [user [group [mode]]]\n# prefix\tpath prefix to append directories\n# list\t\tpaths separated by spaces or newlines\n# user\t\tuser ownership\n# group\t\tgroup ownership\n# mode\t\tpermission mode\nwrite_install ()\n{\n  for dir in $2\n  do\n    printf '  install -d %s%s/%s || return 2\\n' \\\n      \"${3:+-o $3 }${4:+-g $4 }${5:+-m $5 }\" \"$1\" \"$dir\"\n  done\n}\n\n\n# write a list of commands applying systemd executable prefixes\n# usage: write_commands list [run [runpriv]]\n# list\t\tcommands separated by newlines, with prefixes (-@:+!)\n# run\t\tcommand line to run each command (nice, chrt, ...)\n# runpriv\tcommand line to set privileges (runuser, ...)\nwrite_commands ()\n{\n  oldifs=$IFS\n  IFS=$nl\n\n  for cmd in $1\n  do\n    pre=$(get_prefix \"$cmd\")\n    beg=$3\n    end=' || return 2'\n\n    if [ -n \"$pre\" ]\n    then\n      [ -z \"${pre%%*-*}\" ] && end=\n      [ -z \"${pre%%*[+!]*}\" ] && beg=\n      [ -z \"${pre%%*[@:]*}\" ] &&\n        echo \"WARNING: unsupported exec prefix '$pre'\" >&2\n    fi\n\n    printf '  %s\\n' \"$2$beg${cmd#$pre}$end\"\n  done\n\n  IFS=$oldifs\n}\n\n\n# read a list of commands separated by newlines and write an override function\n# usage: write_function name [commands]\n# name\t\tfunction name (start_cmd, stop_cmd, ...)\n# commands\tlist of commands, read from stdin if omitted\nwrite_function ()\n{\n  lst=${2-$(cat)}\n\n  [ -n \"$lst\" ] || return\n  [ \"$lst\" = : ] && printf \"do_${1}_override () :\\n\\n\" && return\n\n  end='  true\\n'\n  [ -z \"${lst%%*|| return [0-9]}\" -o -z \"${lst%%*|| return \\$?}\" ] && end=\n  printf \"do_${1}_override ()\\n{\\n%s\\n$end}\\n\\n\" \"$lst\"\n}\n\n\n# write an init-d-script file starting from the ini_* vars (see read_unit)\n# usage: write_init servicename instance\n# servicename\tname of the service provided\n# instance\tinstance name for template units\nwrite_init ()\n{\n  name=$1\n  instance=$2\n\n  if [ \"${name%@}\" != \"$name\" ]\n  then\n    name=$name$instance\n  fi\n\n  daemon_pre=$(get_prefix \"$ini_service_execstart\")\n  daemon=${ini_service_execstart#$daemon_pre}\n\n  if [ \"${daemon%%[[:space:]]*}\" != \"$daemon\" ]\n  then\n    daemon_args=${daemon#*[[:space:]]}\n    daemon=${daemon%%[[:space:]]*}\n  fi\n\n  pidfile=$ini_service_pidfile\n\n  if [ -n \"$ini_service_user\" ]\n  then\n    start_args=\"--user $ini_service_user\"\n    [ -n \"$daemon_pre\" -a -z \"${daemon_pre%%*[+!]*}\" ] ||\n      start_args=\"$start_args --chuid $ini_service_user\"\n    stop_args=\"--user $ini_service_user\"\n    runprivstart=\"runuser -u $ini_service_user -- \"\n    is_true \"$ini_service_permissionsstartonly\" || runpriv=$runprivstart\n  fi\n\n  cls=$ini_service_ioschedulingclass\n  pri=$ini_service_ioschedulingpriority\n  [ -n \"$cls$pri\" ] &&\n    start_args=\"$start_args --iosched ${cls:-best-effort}${pri:+:$pri}\" &&\n    run=\"ionice ${cls:+-c $cls }${pri:+-n $pri }\"\n\n  pol=$ini_service_cpuschedulingpolicy\n  pri=$ini_service_cpuschedulingpriority\n  [ -n \"$pol$pri\" ] &&\n    start_args=\"$start_args --procsched ${pol:-other}${pri:+:$pri}\" &&\n    run=\"${run}chrt ${pol:+--$pol }${pri:-0} \"\n\n  [ -n \"$ini_service_nice\" ] &&\n    start_args=\"$start_args --nicelevel $ini_service_nice\" &&\n    run=\"${run}nice -n $ini_service_nice \"\n\n  pre=$(get_prefix \"$ini_service_workingdirectory\")\n  workdir=${ini_service_workingdirectory#$pre}\n  [ \"$workdir\" = '~' ] && workdir=\\~$ini_service_user\n  [ -n \"$workdir\" ] &&\n    start_args=\"$start_args --chdir $workdir\" &&\n    chdir=\"${pre}cd $workdir\"\n\n  if [ -z \"${service_type:=$ini_service_type}\" ]\n  then\n    if [ -n \"$ini_service_busname\" ]\n    then\n      service_type=dbus\n    elif [ -n \"$ini_service_execstart\" ]\n    then\n      service_type=simple\n    else\n      service_type=oneshot\n    fi\n  fi\n\n  if [ \"$service_type\" != forking ]\n  then\n    start_args=\"$start_args --background\"\n    [ -z \"$pidfile\" -a \"$ini_service_killmode\" != none ] &&\n      start_args=\"$start_args --make-pidfile\" &&\n      pidfile=\"/var/run/$name-sysd2v.pid\"\n  fi\n\n  if [ \"$service_type\" = notify ]\n  then\n    start_args=\"$start_args --notify-await\"\n    timeout=${ini_service_timeoutstartsec:-$ini_service_timeoutsec}\n    timeout=${timeout%s}\n    [ -n \"${timeout#60}\" ] &&\n      start_args=\"$start_args --notify-timeout $timeout\"\n    [ -n \"$timeout\" -a -z \"${timeout%%*[^0-9]*}\" ] &&\n      echo \"WARNING: unsupported timeout '$timeout'\" >&2\n  elif [ \"$service_type\" = dbus ]\n  then\n    : TODO\n  fi\n\n  signal=${ini_service_killsignal#SIG}\n  timeout=${ini_service_timeoutstopsec:-$ini_service_timeoutsec}\n  timeout=${timeout%s}\n  [ -n \"${signal#TERM}\" -o -n \"${timeout#90}\" ] &&\n    stop_args=\"$stop_args --retry=${signal:-TERM}/${timeout:-90}/KILL/5\"\n\n  limitnofile=$ini_service_limitnofile\n  [ \"$limitnofile\" = infinity ] && limitnofile=unlimited\n\n  need_install=$ini_service_runtimedirectory\n  need_install=$need_install$ini_service_statedirectory\n  need_install=$need_install$ini_service_cachedirectory\n  need_install=$need_install$ini_service_logsdirectory\n  need_install=$need_install$ini_service_configurationdirectory\n\n  need_do_start=$ini_service_execstartpre$ini_service_execstartpost\n  need_do_start=$need_do_start$need_install\n\n  execstop=$ini_service_execstop\n\n  if [ \"$service_type\" != oneshot ]\n  then\n    [ \"$pidfile\" = \"/var/run/${daemon##*/}.pid\" ] && unset pidfile\n    [ \"$name\" = \"${daemon##*/}\" ] && unset name\n\n    [ -n \"$daemon_args\" -a -z \"${daemon_args%%*[\\\"\\\\]*}\" ] &&\n      echo \"WARNING: DAEMON_ARGS needs to be escaped\" >&2\n    errcheck=' || return $?'\n\n    if [ -n \"$daemon_pre\" ]\n    then\n      [ -z \"${daemon_pre%%*-*}\" ] && errcheck=\n      [ -z \"${daemon_pre%%*[@:]*}\" ] &&\n        echo \"WARNING: unsupported exec prefix '$daemon_pre'\" >&2\n    fi\n\n    # TODO: test if already running before start (pretest=\"+do_status_cmd\")\n    [ -n \"$need_do_start\" -o -z \"$errcheck\" ] &&\n      execstart=\"-+do_start_cmd$errcheck\"\n\n    errcheck=' || return $?'\n    [ -n \"$execstop\" ] && errcheck=\n    [ -n \"$execstop$ini_service_execstoppost\" -a \\\n      \"$ini_service_killmode\" != none ] &&\n      killstop=\"-do_stop_cmd$errcheck\"\n\n    [ -n \"$timeout\" -a -z \"${timeout%%*[^0-9]*}\" ] &&\n      echo \"WARNING: unsupported timeout '$timeout'\" >&2\n  else\n    daemon=none\n    pidfile=none\n    : ${name:=SERVICE_NAME}\n    unset daemon_args start_args stop_args\n    execstart=$ini_service_execstart\n    runstart=$run\n  fi\n\n  need_do_start=$need_do_start$execstart\n  start_args=${start_args# }\n  stop_args=${stop_args# }\n\n  aliases=$(get_provides \"$ini_install_alias\")\n\n  [ -z \"$ini_unit_defaultdependencies\" ] ||\n    is_true \"$ini_unit_defaultdependencies\" &&\n    defdep=sysinit.target\n\n  req_start=$(get_depends \"$ini_unit_requires $defdep\")\n  should_start=$(get_depends \"$ini_unit_wants $ini_unit_after\" \"$req_start\")\n\n  default_start=$(get_runlevel \"$req_start $should_start\")\n  [ \"$default_start\" = S ] && default_stop='0 6' || default_stop='0 1 6'\n  [ -z \"$execstop$ini_service_execstoppost\" ] &&\n    [ \"$service_type\" = oneshot -o \"$ini_service_killmode\" = none ] &&\n    default_stop=\n\n  [ \"$default_start\" = S ] && ignore=\\$remote_fs\n  start_before=$(get_depends \"$ini_unit_requiredby $ini_install_wantedby\n    $ini_unit_before\" \"$req_start $should_start \\$all $ignore\")\n\n  cat <<EOF\n#!/bin/sh\n# Generated by sysd2v v0.3  --  http://www.trek.eu.org/devel/sysd2v\n# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.\nif [ true != \"\\$INIT_D_SCRIPT_SOURCED\" ] ; then\n    set \"\\$0\" \"\\$@\"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script\nfi\n### BEGIN INIT INFO\n# Provides:       ${name:-${daemon##*/}}${aliases:+ $aliases}\n# Required-Start: $req_start\n# Required-Stop:  ${default_stop:+$req_start}\n${should_start:+# Should-Start:   $should_start\n${default_stop:+# Should-Stop:    $should_start\n}}${start_before:+# X-Start-Before: $start_before\n${default_stop:+# X-Stop-After:   $start_before\n}}# Default-Start:  $default_start\n# Default-Stop:   $default_stop\n# Description:    ${ini_unit_description:-SERVICE_DESCRIPTION}\n### END INIT INFO\nEOF\n\n  if [ -n \"$ini_service_environment$ini_service_environmentfile$need_install\" ]\n  then\n    echo set -a\n    write_path RUNTIME_DIRECTORY /run \"$ini_service_runtimedirectory\"\n    write_path STATE_DIRECTORY /var/lib \"$ini_service_statedirectory\"\n    write_path CACHE_DIRECTORY /var/cache \"$ini_service_cachedirectory\"\n    write_path LOGS_DIRECTORY /var/log \"$ini_service_logsdirectory\"\n    write_path CONFIGURATION_DIRECTORY /etc \\\n      \"$ini_service_configurationdirectory\"\n    printf '%s' \"${ini_service_environment:+$ini_service_environment$nl}\"\n    write_env \"$ini_service_environmentfile\"\n    printf 'set +a\\n\\n'\n  fi\n\n  cat <<EOF\n${name:+DESC=\\\"$name\\\"\n}DAEMON=$daemon\n${daemon_args:+DAEMON_ARGS=\\\"$daemon_args\\\"\n}${pidfile:+PIDFILE=$pidfile\n}${start_args:+START_ARGS=\\\"$start_args\\\"\n}${stop_args:+STOP_ARGS=\\\"$stop_args\\\"\n}${limitnofile:+ulimit -n $limitnofile\n}${ini_service_umask:+umask $ini_service_umask\n}\nEOF\n\n  if [ -n \"$need_do_start\" ]\n  then\n    {\n      write_install /run \"$ini_service_runtimedirectory\" \\\n        \"$ini_service_user\" \"$ini_service_group\" \\\n        \"$ini_service_runtimedirectorymode\"\n      write_install /var/lib \"$ini_service_statedirectory\" \\\n        \"$ini_service_user\" \"$ini_service_group\" \\\n        \"$ini_service_statedirectorymode\"\n      write_install /var/cache \"$ini_service_cachedirectory\" \\\n        \"$ini_service_user\" \"$ini_service_group\" \\\n        \"$ini_service_cachedirectorymode\"\n      write_install /var/log \"$ini_service_logsdirectory\" \\\n        \"$ini_service_user\" \"$ini_service_group\" \\\n        \"$ini_service_logsdirectorymode\"\n      write_install /etc \"$ini_service_configurationdirectory\" '' '' \\\n        \"$ini_service_configurationdirectorymode\"\n      write_commands \"$chdir\"\n      write_commands \"$ini_service_execstartpre\" \"$run\" \"$runpriv\"\n      write_commands \"$execstart\" \"$runstart\" \"$runprivstart\"\n      write_commands \"$ini_service_execstartpost\" \"$run\" \"$runpriv\"\n    } | write_function start_cmd\n  else\n    [ \"$service_type\" = oneshot ] && write_function start :\n  fi\n\n  if [ -n \"$execstop$ini_service_execstoppost\" ]\n  then\n    {\n      write_commands \"$chdir\"\n      write_commands \"$execstop\" \"$run\" \"$runpriv\"\n      write_commands \"$killstop\"\n      write_commands \"$ini_service_execstoppost\" \"$run\" \"$runpriv\"\n    } | write_function stop_cmd\n  else\n    [ \"$service_type\" = oneshot -o \"$ini_service_killmode\" = none ] &&\n      write_function stop :\n  fi\n\n  if [ \"$ini_service_execreload\" = '/bin/kill -HUP $MAINPID' -a \\\n       -z \"$run$runpriv\" ]\n  then\n    printf 'alias do_reload=do_reload_sigusr1\\n\\n'\n  elif [ -n \"$ini_service_execreload\" ]\n  then\n    {\n      write_commands \"$chdir\"\n      write_commands \"$ini_service_execreload\" \"$run\" \"$runpriv\"\n    } | write_function reload_cmd\n\n    cat <<\"EOF\"\ndo_reload ()\n{\n  log_daemon_msg \"Reloading $DESC configuration files\" \"$NAME\"\n  MAINPID=$(cat $PIDFILE)\n  do_reload_cmd_override\n  log_end_msg $?\n}\nEOF\n  fi\n\n  [ \"$service_type\" = oneshot ] && write_function status :\n}\n\n\n# parse command line\nwhile getopts di:n: opt\ndo\n    case $opt in\n      d) debug=1;;\n      i) instance=$OPTARG;;\n      n) name=$OPTARG;;\n      ?) printf \"Usage: %s [-d] [-i instance] [-n servicename] [filename]\\n\" \\\n           \"$0\"\n         exit 2;;\n    esac\ndone\n\n: ${instance=INSTANCE_NAME}\nshift $(($OPTIND - 1))\n\n\n# convert unit file\nread_unit \"${1:--}\" \"$instance\"\nwrite_init \"${name-$inifile_unit_name}\" \"$instance\"\n\n"
  },
  {
    "path": "contrib/zefram-patches",
    "content": "Date: Mon, 14 Apr 1997 15:39:08 +0100 (BST)\nFrom: Zefram <zefram@dcs.warwick.ac.uk>\nMessage-Id: <25042.199704141439@stone.dcs.warwick.ac.uk>\nSubject: SysVinit patch\nTo: miquels@drinkel.cistron.nl\n\nHi.  Enclosed is a patch for SysVinit that I am finding tiresome to\nkeep updating; you might like to fold it into your official releases.\nIt does the following:\n\n* shutdown: use /etc/shutdown.allow if an option -s is given instead\n  of testing for a controlling tty.  The tty check was inflexible and\n  unreliable.\n\n* sulogin(8): refer to inittab(5) instead of inittab(4).\n\n* sulogin: use libc passwd/shadow functions instead of home-grown ones\n  (there's just no point in using the special version).\n\n* shutdown/sulogin: don't rely on the username \"root\" -- it's the UID\n  that counts.\n\n-zefram\n\nbegin 644 initdiffs.gz\nM'XL(``IG43,\"`^T[:U/;R+*?E5_1>&L3&\\G&#Y[FD%H\")/%9)U\"8G-0](44)\nM>62KD\"6M1K+7)YO_?KM[1K)DFP\"[V:T]=2^5`FFFIZ??W=.C##W7A;H3@YS+\nMJ1=X2;W=V#W8DN,T&8:SH+%?GC`+,\\\\V-S?O76:\\CCWX9QI`:QO_=3N[W68;\nM6@<'N\\_J]?K].(T!+CF.8FAUH-WI-G>Z.QU:MD>;%7]X\\U;+:NT!OP(T7L&6\nMO/6\"'!N-7;Z\"3W!=3^BY=PE2./#YV48^'M^-`\\?%(9J&Q)L(7M3#R9D=!UXP\nMJD^$E/9(*)CKRM>O7YD#M34^U?_0UO*I>Z\\3P^Z!M;>MQ$\"DX>M^*R--_!KY\nM-DHZC.>0H0L#2,8\"G'`RL8,A^%X@<,!.8.;Y/MP*I#5((`G!]GU$D4H1R\\:\"\nM!),>OGSY`E\"7]-*[@&OWU75=7KL7^'X6R#36\"&U>#'::C,/8DV)(6$E(0%)B\nM*M`4$C$!3X(?CD8(X04-Q'(UQA'\\%X3Q!,F8$Z(AS,8BH,TR.>..!.0@!,[>\nMSFF.[`K'J_LU\"_'PBI,D]NO'?E(_%3[!1S%*0@P;``,A%!7\"2;R0</>.'0=G\nMX20,DCCT%4^WP@]GX(8Q3$+DS0M<(HM6-)0X2\"Z0RR53)DNF1V^$!N`C$:,E\nMP/:^WJJ;.U9K8=?(TLG59;]^W+^JGY[UB64;:=`\\6,2U$PLD)AB!'8`=17$8\nMQ9Z=\"$`UHMJ]@+'TMD3B;)%T$OL6L324C\"?\"#J32EIB*>!ZB,<S&(8QME--X\nM+CT4+M@L$T2#Q\"O3\"63H\"[@3\\]O0CH>H@4#IM:!2YA\"N0B)URA:%^UGH`DL*\nMI+7.6#AW+!I4B.<R(\\IH_H.*92,J6@B:,.(A4D.7MYQZ<9(BH9HPV8\">>[^A\nMN'$X*9@*T>0EB@99(((0NQZRF0DOUQNB\"6<:)RD\"N2,'Z3'_`7E6A#J2C`&)\nM1H(#&[V/*&=),]:9EXP5A\"<38B028>23X2C?B46)872F)2ZAJAGI;4WM>\"M.\nM@ZTTF41(5ZT!YX$_)[[<A9A\"*9:E*DD,:-9Q&\"::GWQ/BX1\"(0'1H$TY@CSF\nM'`F.9^C*V23,8B]13J3C\"UF^C*!%?P-767`FN2XZ]\"H-^9;D)BJZMJU6>SL+\nM8O_O`FM=@#1+;O![7\"`W/H10D1L11131K/^[OE\"2+QLWBF+5]%6X^%.,?_A`\nM.>;<6SHYWRK''.,J%7\"<CJBN:C6[.[O=UL'#Y9CSM'+LP&H5RA!\\V\\D<&#8-\nM`\\L%E,`P1\"$D,\"(GBL-T-`;:&&ZY)\"\"QAFDLA3\\57''H=4Z7/,3!Y$U.X:.K\nM#^>`*J8BJ9!,<_B$\\KG$S81OSS%Y)S.!ECCHO;DZNWP'5//@\\\\^]?I]3.A%`\nM:5POQG43^PY=F*J8A1/*=4ZH]N1?*%V\"ZQKOO%]2I'2*2P>3$,N%X#:-1Q9,\nM>%S^-(R]X$[X#0<M/<8\"(O`5DG42W6M:>[M9(3`-/2(!C:Q:P]<OM,S%,!<D\nM;E4F0Q''%%F,R@<\"Z5XGD(L&/M7OXK$;.)_Q20GG,Q<I\\$F7FIGY?KX.*HC7\nMJ%PGA*!^UP7^&8;!BP10\\%2*96@M=\"=\\)12-I76Q7A>+6\\PL8+L)2B[7U!+P\nM6`./;7\\M*%G37LO:R^OM[R`)^=\\IBK5&LF_M=Q9^MX?E?^YX.>(@IW[9_ZXK\nM7`95V`=QG,5$[(%KRV290$?CR?QQU0V7%JSWQ4S6Y(MW%$BE-PILGQ>;B\\52\nM[_9XARSOCM+A'%?A&KR\">6243B@/4];'O6TZ%VU`E6J$ZTJ`>:Q2PT6(I'9(\nM1H7')R^IMOAE_=FKO;MOM?<*XF^CS[;1:;/(AT1A:/.&08A$PA$T#_-1+</2\nM6(26S0.F'D#I$=\\YT.M>_PPVW4B].6,[ADV2.R>33YWVY\\+$;>I^:K7W<6@M\nMZ?O;5J=SD(47XI!^8U1RHGF5<-[X6+7X%E1:2A[/ZCB_M<FG)DRF,X%V.D6=\nM4!*FPY)/*D6;G7BD2]C<X@4(64V<D4BB41Q5FS78.(+LK0;/G_,+\\HTO1T?0\nMPA%>1C]5-T+.W3`2075P>MSOGW]$:N)*C9&\\_]#OU]#[ZT28@72]#]=28A&E\nM,X%2+-;_'/85C8:GY*NP7&)Z@34U3@8\\&V/%4G61:EE%\"5N`(K8P_M04+89!\nM#)/HFY^)H1<_O(#??H/\"P'7PHL:$>D$J#O,E'KR$3FMY!C-459(4$,$A;,KH\nM$&1DFC46ZR;-9!CY1;-A+$S\",TW<EM0Z3\".BJ\\807YEOWO8?T&G7H+#B<X['\nM=7RLE%`-O\"@7\\PP=V+_+0TBIY**BT?6HKY\"74JJ#4!+?!HW=A'>D_RH&'C:)\nM-$'?K*Y3KK&PND1W!G1O@<LS/*]S4?BODVP79BU-ZB_3Y\":91X)0?AB<7=Y<\nM7)Z?G`T&RV*6.GVP0BM;0S'=^E%6+-`HJ$=26ZA*)G:B0)_+I(8\";*Y3*((U\nM9'(3(S)X#LU?7[\\^4=;?_+6YW5Q:DG%Y24F\"V/-G]ES\"^<\\ECL@Y)U'&&`F`\nM_`&75-AYFID)&EJ\\IJG(,6XQHM^IYZ_?D\"F55VCJ.K3F6Y,1*A\\!92ZDMJ+!\nMX#C:I-J*Z-Q`0@.BM`B42U/1_>'JYOWQN[-![]]GN>NL$EZD7!DM_Q+!4%M+\nMP3`U-VP7,UMFO.1>3H1I_$5?+4:9D_/W@_/^&4IUMA)EJ#S,ZPPW0ICK^)&U\nM?>,Z5DDEPU+R*\\V8D6<;S26%9&0.5-2]T)9.&4T=U91/T;1RJJJC_`AGJYCJ\nM'(L2WA3I='[!JB=PYTEWU/6ZFK&S\\]<U53N!(?$`YHRK#C-*66Q_SVH?M%46\nM6Y<\\.GMMJ[/?7N2]3GL'!_(C.RN+_RP2\"<<_(AVIPN=#-:_UBUG?<&P\\E;V0\nM+[HJR7#BFX1#05S2O)$GPY9:D\"UF'HRA<.W43[KZU=`58C:M@0WU^E6G/!,X\nMU>*&IV'6\"DSQ5#<GIPA&#;6WRF)Z>PI9CTI,)EOE1_&\">X99*B>.+)#A@U7-\nM)B'`DT7IY*O/NPU0D6(8\"LD5':X/J27I<%VJ?C($O^!!V7/G%J%@&7LJQ#AT\nM@D9HW#X-T*ZG:$2TD^TX81HDFO<L.YH/9T?S@>QH/CT[FO=F1_/W94?SP>QH\nMDG68#V5'LYP=V8[^8'8TGYP=U:Y/RX[FT[*C^>CL:#XJ.V90&X.;WN#D[:7.\nMDN05M75P3\\BB]TMC35XSGY#7S#^2U\\SEO&86\\YJI0F5F<\\6\\EIO4M_*:N9K7\nMS\"?E-?.[Y#5S-:^9H!E;Y#7-I8Z[.J]Q1*%S3^BNG\"95J6ZK)J'.=<NL#4XO\nM>J=KHB\\&>5?B&4OS].,0#?8Y[H-TW-=F2[E!N>;2,YM8UV3+YOC*<R`B@%WJ\nML37;W>W._3VV?-636FS[>8L-H#%X\"Z=G@Y/+WL55[_R]ND?4>/&%+#^8AG>E\nMB['J?HU:M7PK5NA3CT)NR%*[%Z6/HF93(Y=\\1J=C[47#D\"\\*551#E\\IZZ]1U\nMU4WUZG9-M5QQOYZZ74%KE2$U<F-/<$=9_(IY,.%.LJ8V)TGEI<B6?%6HN]/4\nMJ0?7MT>(A,V!)JB7,@GY8A.J8F1!O]<_K_$MY86Z0V!191>T?T=1[?PM1/6`\nM*SCW&:[S#5=PC(](U#]3']K;T-KIMMK=SNZ#KN`8[T+M\"MO01`=J=EO?<(7V\nM-E:HA;[+MM5I9OK^P0L</\\7\"\\1^N$R1^8_RR-*B;34NCT6Q(0V81<&QC%%H&\nMY+Y\"*%>PSN66%SJ+[5RXN7GS_L--O_?J\\OCR?VYNX.41[*XOISO6=C-S[!^P\nMD*4[^9.W9R<_WZ#=&JV5T7>G.SR*YX-LXN)X,/AX:E2X.\"/#F`TKA>G!V^/3\nM\\X]Z6C%6*:!]U7L_>(NSZC,&FGF6M9?^A2&?+L>/H/)3]8>:UA>T&GO0VJ^C\nMFNND6G@W'30JA^HP@,HXN/_P0\"5A>]%Y^JHVV]JD(\\^F,1#TX0`639Y]Z^>7\nM3U/;3X7Z(B#A$-]@:#K8<3M8BJ2JR-W$I98F'5?1J?1+=ORC=QJ-D1E\\II.6\nM/@YOJ3:^\\4:H&SPZ5+-[S<)XJ/Q7=?LI\"6$5D#IZ>@B;6)P1>#3CQ,T=Z0T\\\nM4R54CB_!HI$=TN2BC;>`9)*IEOK4WMG]O#(CRU.*0>X#4JIC^K'8-UY3.S7$\nMHE&&$P'Z3,37;?9P2AW'A@+<(B1D\\]'LAF[D2+W<23@L3&BJ<:HT/!).*&ET\nMD$88_3Y@\"\"S-#ST2<&6K-\"C'PO=74*59P[.`?3%$H\\OY7MEYEO\"/%@D?80TD\nM)\\:B3L'4&*L18^T<!YC[2?;ZZ$<3*+(-+3(LR%GAGHKUN=ZI[F@H*):7/F<S\nM,7S$(9U8@$K19YR-,CFZ9\\,EHP)E&7>Q%-E116R-X8Q%$<M<@'D$.^J9#/MY\nM21T6V904$0XC/CK.*\\@J.4)M:>[!J2)^UNM]Z(N`J.#'@+'*RX!4+M8R+H_8\nMW-6;KH<W2#\\;Y;/51EE=/1411.#$\\RC!3).K\"\\,#>K4WU(\"8\\\"A:N'B81:$I\nM,RAJD[03+5O0TD42%HZ2BV\"5PMWL8XD`57B_E65<Z)CC#:LE#:*A+!EER86O\nMBB:HBA/\"P3?Z=`G-<=#6P\"J4Y_`6<*61%+U<M_27C*BB+6\"EGN9$<8]_K95.\nM.59J:A\\IH16/DD]P*?FG^]23K;*H-YGP-P1*'I:&(UY0/Q;??7U_FU3:RWSQ\nMFXK/+71CO8G^+HT_<G_@S9><8%$(<\"H^EG?,6U&L#7@?)OKKPMP5@E`MT,F.\nM[W,I`^)1>286GQ#*.R]2+8%A&M,IDRKC+*EOZ(J!+J.8SOQJV=`97)=]$/KD\nM9,G\\4,TM$C2M^]3:58U-A0T91,.F\"1ZD\"SWO4*<?+=?*&V^Z7&[PEX8V3HN`\nM,G9V'YDOJ9)4J&^COU*LG_(2Q2F:G1TG:53K@E[FNGXJQZ1!E(J^R:.OK-I[\nM5FL_OZI<DOZ?7`BAKK(XL(1D:5A&-\"C7Q<DGE3IJP_75SF)NN>!9S-Q;\\RQ`\nMRF7/8GRI\\EE,%(N?PDYKZI^(B2+CG.&B:O,1D?G$I@\\5N-EHPX?>*30S$;,2\nME5$5XW*FDE*)!`]GVSRU%D)8'E'J+]=DO;\\BZ97W5G</S47\"D[E$980&D9-*\nMQE$0[GK17A0=]4=9\"H`E1+R?\\\"4?8[(X*QE$1C?X%Q/<NBU4`JL,RFP^?CN5\nM\\4H2H\"YW<>/#0@#^6\\9?]<Y\\_961^$?YK3AL@1;T=XW&:_L;!WM6IYEW^PP5\nM<`V4CX/\"&6/$LV!W6Z'$>D8$TVKE[?F[,R113;:4.61S_?,WU):N9!?&*P!T\nM`;`T6T`]>'O6[^.P3'51K^:U\"ZL.S+;5WLG_Y\\%W)+AHX_>1O0KS:.+7-F3V\nM]ZW.P4XN_3Q,K76*0MA1]6RK6*UR<5NH*PJA.[^_5)!K8A8&+?CM-X;(OL[!\nMPI=C<35:L*TC[,J`^BI`W;1J[FF7FN[3=':LSO9\"94_D<HFQ<@C5+?B_G*__\n)!9>7)7O2-```\n`\nend\n\n"
  },
  {
    "path": "doc/Changelog",
    "content": "sysvinit (3.15) released; urgency=low\n\n    * Patched manual page for runlevel command. This cleans up formatting and whitespace.\n      Patch provided by Bjarni Ingi Gislason.\n     \n    * Fixed formatting in init manual page to indicate runlevel arguments\n      to telinit are not optional.\n\n\nsysvinit (3.14) released; urgency=medium\n\n    * Re-introduced DESTDIR flag in src/Makefile to assist building on Arch.\n    * Fixed typo in init.8 manual page.\n    * Expand process length in inittab to allow a command line 253 characters\n      (up from 127). Expand child process structure to accomidate 253\n      and some buffer room for newline/NULL.\n    * Clear buffer when reading long lines from inittab, avoids garbage left\n      over from old lines with long commands or comments.\n    * Drop lines which are too long from inttab conf and log warning rather\n      than truncate.\n\n\nsysvinit (3.13) released; urgency=low\n\n    * Adjusted manual page install location. Patch provided\n      by Mark Hindley.\n\n\nsysvinit (3.12) released; urgency=low\n\n    * There were instances of the ctime() function being called in multiple files without\n      checking the return value (can be NULL) and without checking the length of the\n      returned information. While there _should_ never be a case where ctime() fails\n      assuming success and length of returned string isn't ideal (or future-proof).\n      We now check the return value of ctime() in bootlogd, dowall, last, logsave, and\n      shutdown. Where no valid value is returned we supply a dummy value (usually a\n      space in place of the expected time stamp). We also no longer assume returned string\n      is at least 11-16 characters.\n\n    * Re-commit flexible Makefile for GoboLinux.\n\n    * Make sure pty.h and sys/sysmacros.h are included when building bootlogd on\n      systems with glibc.\n\n    * Fixed typos and syntax in manual page for init.8.\n      Edits provided by : Bjarni Ingi Gislason.\n\n    * Allow setting of location of the /usr directory in src/Makefile.\n      This is handled by the usrdir variable.\n\n    * Make sure src/Makefile uses sysconfdir (/etc by default) when installing\n      configuration files.\n\n    * Fix typos and syntax in pidof manual page.\n\n\n\nsysvinit (3.11) released; urgency=low\n\n    * Some escape characters were included in the inittab manual page, but not displayed\n    by the \"man\" command because they were not (ironically) properly escaped. This has been\n    fixed.\n\n    * Enabled chaining commands together in the inittab file. This allows the admin\n      to run commands like \"task1 && task2\" or \"task2 || task2\" from the inittab file.\n\n    * Fix typoes in halt manual page. Fixes provided by Bjarni Ingi Gislason.\n\n    * Fix typos/markdown in fstab-decode manual page.\n      Patch provided by Bjarni Ingi Gislason.\n\n\nsysvinit (3.10) released; urgency=low\n\n    *  When the user executes \"machinectl stop\", systemd sends SIGRTMIN+4 to PID 1 \n       in the container, and expects that to initiate a graceful shutdown (power-off).\n       SysV init now catches this signal and initiates a shutdown (shutdown -hP now).\n       - floppym provided patch to accomplish this.\n\n    * Fix issue in bootlogd which could cause the service to enter an endless loop\n      (and use too much CPU) when it is able to open a device for writing, but not actually\n      able to write to it. This resulted in bootlogd closing and re-opening the device over\n      and over. Now bootlogd should simply fail gracefully when it cannot write to an open\n      file/device.\n\n    * Fix formatting in shutdown.8 manual page. Cleaned up whitespace and special characters.\n\n\nsysvinit (3.09) released; urgency=low\n\n    * Patch for man/Makefile to fix the clean recipe.\n      Provided by Lucas Nussabaum and Mark Hindley\n\n    * On Linux systems, allow reboot command to pass a message\n      to the system firmware during the restart. This is\n      accomplished with the -m flag.\n\n    * Patch from kraj which allows hddown to compile\n      when musl is the C library.\n\nsysvinit (3.08) released; urgency=low\n    * floppym provided patch which causes the halt command\n      to call \"shutdown -h -H\" instead of \"shutdown -h\" when\n      halt is invoked without parameters. This forces the shutdown\n      command to set the INIT_HALT variable and assume, unless other\n      conditions apply, that the \"halt\" call really wants to halt the\n      machine and INIT_HALT should be set. In other words we\n      assume halt wants to halt unless told otherwise.\n      Addresses downstream Gentoo bug ID 911257.\n\n    * Applied a patch from floppm which adds kexec option to the halt command.\n\n    * Updated halt documentation and help output to display parameters in\n      alphabetical order.\n\n\nsysvinit (3.07) released; urgency=low\n    * Fixed killall5 so that processes in the omit list are\n      not sent any signals, including SIGSTOP.\n    * Fixed usage message for killall5 to be more accurate.\n    * pidof was not returning PIDs of programs which were launched\n      using a symbolic link. (ie /tmp/sleep when /tmp/sleep links to /usr/bin/sleep).\n      This is now fixed as we check both the realpath and symbolic path for processes.\n      In other words, \"pidof /tmp/sleep\" and \"pidof /usr/bin/sleep\" will return\n      the same PIDs when /tmp/sleep is a symbolic link to /usr/bin/sleep.\n    * Fixed memory initialization error in pidof. Fix provided by Markus Fischer.\n    * Accepted patch from Mark Hindley  which avoids clearing realpath information\n      in pidof when trying to find matching executables.\n\n\nsysvinit (3.06) released; urgency=low\n    * Mark Hindley fixed typo in es.po\n    * Mark Hindley cleaned up translation code in src/Makefile. \n    * Drop sulogin from Debian build. Removed libcrypt-dev dependency.\n    * Fixed pt translation pages which were failing due to mis-matched\n      open/close tags.\n    * Makefile now respects ROOT prefix when setting up pidof-to-killall5\n      symbolic link.\n    * Removed redundant translation files from man directory.\n    * Makefile now respects DESTDIR. User can specify either ROOT= or DESTDIR=\n      to set install prefix.\n\n\nsysvinit (3.05) released; urgency=low\n    * Helge Kreutzmann provided updated Makefile for\n      translation of manual pages. This has been added\n      to the man directory.\n    * Added sys/sysmacros.h include in mountpoint.c to fix\n      compiler errors on systems where major/minor macros were not defined.\n    * Applied patches from Mark Hindley to clean up man page\n      Makefile, translations and installs of new man pages.\n    * Remove reliance on linux/fs.h as it conflicts with glibc 2.36.\n      Patch provided by lucascars.\n\nsysvinit (3.04) released; urgency=low\n    * Mark Hindley supplied patch to make bootlogd compile\n      on GNU Hurd systems. Was missing major/minor macro.\n\nsysvinit (3.03) released; urgency=low\n    * Fixed formatting in init.8 man page.\n      Patch provided by Mark Hindley.\n    * Fixed compile error on GNU Hurd and musl-base systems. Due to missing MAX_PATH definition.\n      Error reported by Mark Hindly.\n\nsysvinit (3.02) released; urgency=low\n    * Added q and Q flags to synopsis in shutdown manual page.\n    * Applied fixes for markup and spacing in manual pages.\n      Patch provided by Mario Blattermann.\n    * Added translation framework (po4a) from Mario Blttermann.\n    * Added Makefile for man/ directory. Will handle translations\n      and substitutions.\n    * Applied new translations for multiple languages from Mario Blattermann.\n    * Added ability to use \"@\" symbol in command named in the inittab file. This\n      treats commands as literal and does not launch a shell to interpret them.\n    * Updated inittab manual page to include overview of symbols which trigger\n      a shell interpretor and how to disable them using the @ symbol.\n    * Introduced change which adds error checking in bootlogd when performing\n      chdir(). - Provided by Alexander Vickberg \n    * Add check for console using TIOCGDEV on Linux systems in bootlogd to\n      make finding console more robust. - Provided by Alexander Vickberg\n \n\nsysvinit (3.01) released; urgency=low\n    * Default to showing processes in the uninterruptable state (D).\n    The -z flag no longer affects whether processes in D state are shown.\n    The -z flag does still toggle whether zombie (Z) processes are shown.\n\n    * Removed unnecessary check which is always true from init tab parsing.\n\nsysvinit (3.00) released; urgency=low\n\n    * Applied patch from Matthias Schiffer which allows bootlogd to read from\n      a wider range of consoles. The console name is already passed in from the\n      kernel command line using \"console=\". We no longer filter out names as strictly\n      but do now check to confirm the \"console=\" device points to a valid TTY.\n\nsysvinit (2.99) released; urgency=low\n\n    * Fixed typos and missing underlines in shutdown manual page.\n      Corrections provided by Helge Kreutzmann.\n\nsysvinit (2.98) released; urgency=low\n\n    * Fixed time parsing in shutdown when there is a + in front of a 0 time offset.\n      Commands with a positive time offset (+1) would work but +0 fails.\n      This has been corrected by Arkadiusz Miskiewicz.\n\nsysvinit (2.97) released; urgency=low\n\n    * Check $(ROOT) filesystem for libcrypt instead of a hardcoded path to /usr.\n      Added logsave and readbootlog to list of files git ignores.\n      - Patches provided by Petr Ovtchenkov.\n\n    * Code clean-up and making sure we avoid freeing unused memory.\n      Patch provided by David Hoyer.\n\n    * Added shell script from Trek which converts systemd unit files\n      into init.d style scripts.\n\n    * Added patch from Didier Gaudin which allows init to load configuration\n      data from files stored in /etc/inittab.d/\n\n    * Added patch from William Shipley which allows shutdown time to be specified\n      in the format +hh:mm. This is in addition to the existing formats such as\n      hh:mm, +m, and \"now\".\n\n    * Fixed typos in manual pages. Submitted by Helge Kreutzmann.\n\n\nsysvinit (2.96) released; urgency=low\n\n  [ Jesse Smith ]\n\n    * Added -z command line parameter to pidof which tells pidof to\n      try to find processes in uninterruptible (D) or zombie (Z) states.\n      This can cause pidof to hang, but produces a more complete process\n      list.\n      Closes Savannah bug #56534\n\n    * Reformatted init code to make if/while logic more clear.\n\n    * Cleaned up some output from readbootlog.\n\n    * Added -e flag to bootlogd. When -e is used, data saved\n      to the boot log file does not have escape characters\n      removed. This means colour and cursor movement codes\n      stay in the log file. The may then look nicer when\n      read with \"less -R', but may appear cluttered or\n      out of alignment when viewed with other, plain-text tools.\n      When -e is not used, escape characters are removed/filtered.\n      Closes Debian bug #672361.\n\n    * Make sure src/Makefile cleans up all executable files\n      when parent Makefile calls \"make clean\".\n\n\nsysvinit (2.95) released; urgency=low\n\n  [ Jesse Smith ]\n\n    * Fixed various typos and control codes in manual pages.\n      Patch provided by Bjarni Ingi Gislason.\n    * Dropped \"-f\" format flag for pidof command as it\n      could be used to print information from memory or crash\n      pidof. Replaced flag with \"-d\" which allows for a custom\n      separator to be used between listed PIDs.\n      Patch supplied by KatolaZ.\n    * Updated manual page to describe -h and its modifiers (-H and -P)\n      in more detail. Should close Debian bug #374039.\n    * Use millisecond delays in init so that shutdown\n      can happen without a near-full-second delay after\n      all processes have terminated. Replaced do_sleep()\n      with do_msleep(), provided by Serge Belyshev.\n    * Replaced hardwired sleep constants in init.c with\n      defined constants for easy updating in the future.\n    * Accepted patch from Luc Gommans which explains why zombie and\n      deep sleep processes (Z and D) may be hidden from pidof.\n    * Removed link instruction against sepol library from src/Makefile.\n      This has no change to the resulting binary, just makes the\n      Makefile cleaner.\n\nsysvinit (2.94) released; urgency=low\n\n  [ Jesse Smith ]\n\n    * When the halt command is called with the -p flag (or as poweroff)\n      the command now passes the \"-h -P\" flags to shutdown. This\n      in turn sets the INIT_HALT environment variable to POWEROFF.\n      Assuming this value is checked by initscripts during the\n      shutting down procedure, it should cause the system to\n      be powered off.\n      If halt is called without -p then the value of INIT_HALT\n      is not set and the default action (often set in /etc/default/halt)\n      is taken.\n    * Removed unnecessary malloc.h includes. Memory allocation\n      and freeing is now handled in stdlib.h\n    * Added defines for FreeBSD to make some components compile\n      on FreeBSD 11.\n    * Increased the size of the kernel command line buffer in bootlogd\n      from 256 characters to 4096. This size is defined in KERNEL_COMMAND_LENGTH\n      for easy modification downstream.\n    * Added logsave.c and logsave.8 manual page from e2fsprogs to make\n      sure logsave is available to initscripts.\n    * Updated src/Makefile to make sure bootlogd compiles with Clang.\n    * Use defined constants for password length in sulogin. Makes\n      it easier to update/patch later.\n    * Minor code fixes across multiple source files to avoid buffer\n      overflows, or uninitialized strings.\n    * Changed the way the \"when\" variable is used internally in shutdown.c.\n      It starts as a NULL pointer, then might get set as a pointer to optarg,\n      then it might get set to point to an argv parameter, then it might have\n      a string value copied into it, over-writing the original data. We should\n      not risk over-writing internal variables which might get used for something\n      else (it's rude and security risk). Set up \"when\" as its own buffer\n      that has data from optargs and/or argv copied into it.\n    * Fixed typo in init.8 manual page.\n    * Updated text of fstab-decode to explain what the utility does.\n\n\nsysvinit (2.93) released; urgency=low\n\n  [ Jesse Smith ]\n\n    * Fixed typo in pidof which would prevent the -o (omit PID)\n      flag from working.\n      Fixes Debian bug ##913394.\n    * Fixed error where pidof would not omit checking PIDs passed\n      to it when the -o flag was used.\n      Fixes Debian bug #913394.\n\n\nsysvinit (2.92) released; urgency=low\n\n  [ Jesse Smith ]\n\n    * The shutdown and init commands were using different default delays between\n      sending processes SIGTERM and SIGKILL - they were 3 and 5 seconds, respectively.\n      Unified these on 3 seconds, using a new defined value in init.h.\n      Updated shutdown manual page to reflect the change and better explain\n      how -t and -n flags work.\n      Updated the init manual page with the new default value.\n      The updated documentation resolves Debian bug #375274.\n    * Remove PC speaker beep from shutdown process in dowall.c.\n      Closes Debian bug #614893.\n      Patch provided by Andreas Fackler.\n    * Removed unused Version variable from wall.c.\n    * Updated halt/reboot manual page to acknowledge the -i\n      flag may not properly shut down network interfaces if the interface\n      does not have an IP address.\n      Addresses Debian bug #361935.\n    * Applied patch from Daniel Povey which should allow killall5/pidof to\n      avoid locking up if it encounters stopped or zombie processes \n      due to broken NFS mount points.\n      This should allow Debian bug #719273 to be closed.\n    * Applied patch from Regid Ichira to clarify shutdown command\n      line options. Updated manual page for shutdown.\n      Closes Debian bug #630661.\n    * shutdown command was setting environment variable INIT_HALT to \n      \"POWERDOWN\", this should have been \"POWEROFF\" as specified in the\n      manual page. Fixed code to match manual page and init scripts.\n      Closes Debian bugs #717531 and #590895\n    * Added -l flag to \"last\" command. When used it allows \"last\" to\n      display usernames longer than 8 characters long.\n    * Added -q and -Q flags to shutdown command to make the \"system is going down\"\n      message appear less often. The -q flag causes messages to only appear at the\n      10 minute, 5 minute and x-hour intervals.\n      The -Q flag maintains complete silence up until the final \"now\" warning.\n    * Mention GRUB as a potential boot loader in init page since LILO is\n      rarely used anymore, outside of Slackware.\n    * Swapped out ECHOPRT for ECHOE in stty settings when init brings up\n      emergency console. Should make backspace-erasing characters work\n      more naturally.\n      Closes Debian bug #402847.\n    * Updated src/Makefile to make sure we build all the software before\n      attempting to install.\n    * Removed typos from pidof manual page and killall5 page.\n      Closes Debian bugs #815839, #905245 and #890478\n    * Added -f <format> option to pidof program to allow printf\n      style formatting.\n      Closes Debian bug #571590\n      Thanks to Philipp Marek for the patch.\n    * Added new tool (readbootlog) which will read the /var/log/boot file\n      produced by bootlogd. The output is displayed cleaned up so there\n      are no control characters. This avoids the need to use sed or related\n      tools to try to clean up the contents of the log.\n    * Added manual page for readbootlog program. Updated bootlogd page\n      to reference it. Closes Debian bug #725123.\n    * Updated the shutdown manual page to try to make it more clear\n      where we are talking about an initscript called halt or the halt\n      program. Likewise whether we are talking about the shutdown process\n      or the specific shutdown program.\n      Should address Debian bug #374039.\n    * Added patch from Samuel Thibault to make project compile\n      on Hurd branch of Debian.\n\n\nsysvinit (2.91) world; urgency=low\n\n  [ Jesse Smith ]\n\n    * Adjusted order of compile flags to make it easier for downstream\n      to adjust optimization level. Patch provided by Matias Fonzo.\n      Can now set optimization level in CFLAGS variable.\n    * Added --version command line flag to display current version info.\n      Updated manual page for init.8 to match.\n    * Version information is now fetched and defined by the Makefile.\n      No more need to update the version manually in the init.c source.\n    * The init process now writes the current runlevel to /var/run/runlevel.\n      This information can be read by the \"runlevel\" command as well as \"halt\"\n      and \"reboot\". Having the information logged in /var/run/runlevel as\n      well as the utmp file means systems without utmp (like those running\n      the musl C library) can still check the current runlevel. This is\n      useful when running halt/reboot as these programs want to check the\n      runlevel.\n    * Added patch from Walter Harms which allows pidof to run without\n      displaying output. In this mode pidof simply returns true or false\n      without displaying PID values.\n      Updated manual page with new -q (quiet) mode.\n      Added -h flag for pidof, which was recognized before, but not used.\n      The -h flag now displays brief usage information for pidof.\n    * Added check for kernel parameter init.autocon=1. If this exists, then\n      init will try to open its own console. If not, then any console=\n      parameters will be ignored. This avoids conflicts with native kernel\n      created consoles.\n\nsysvinit (2.90) world; urgency=low\n\n  [ Jesse Smith ]\n    * Updated some comments in init.c to answer questions or\n      remove old notes we no longer need.\n    * Removed unneeded \"count\" variable in utmpdump.c.\n    * Fixed typo in accidental wrote_wtmp_rlevel == 0 || wrote_wtmp_rlevel \n      comparison so the latter is wrote_utmp_rlevel.\n    * Simplified logic in mountpoint.c when testing for same device or same inode.\n      Thanks to David Binderman for pointing out the above three issues.\n    * When we run shutdown and then the computer is put to sleep, the\n      shutdown command recognizes time has passed and continues its\n      countdown taking the time lapse into consideration. This prevents\n      longer waits if we slept past the time we should have shutdown.\n      Accurate to the nearest minute.\n      Closes Savannah bug #36279.\n    * Added document article and manual page for the initctl (/run/initctl)\n      named pipe. Makes it easier for people to communicate with and\n      extend communication to init.\n    * Added check that named pipe is open before trying to close it\n      when something goes wrong or we receive SIGUSER1. Avoids potential\n      crash if we receive SIGUSR1 while pipe is not open.\n    * Added new signal handler for SIGUSR2. When init receives SIGUSR2\n      it closes (and leaves closed) the named pipe /run/initctl. This\n      can be used to make sure init does not have any files open. However,\n      it also means we cannot switch run levels or bring down the system.\n      The pipe can be re-opened by sending init the SIGUSR1 signal.\n    * Added \"Fall through\" comments to some switch statements where multiple\n      approaches are tried in order to prevent warnings from GCC 7 (and newer).\n      (Thanks to Matias Fonzo for this fix.)\n    * Added includes on Linux for sys/sysmacros.h as the old defines in\n      the sys/types.h file will be removed in the future.\n      (Thanks to Matias Fonzo for this fix.)\n    * Removed old LSM file.\n      Added .gitignore files to avoid git tracking object files.\n      Removed old start-stop-daemon from contrib directory.\n      (Patches provided by Guillem Jover.)\n    * Cleaned up most warnings generated by GCC 7 & 8. We still\n      get some from faulty \"nonstring\" reports, but silencing them on\n      GCC 8 results in more warnings on GCC 7 and Clang, so leaving them\n      for now.\n    * Fixed compile error on Fedora 28 where crypt() will not link due to\n      undocumented dependency change.\n    * Updated Makefile to make sure correct version number and correct\n      version of files are used. Makefile was pulling from master to create\n      tarballs with old version information when trying to create beta\n      snapshot.\n    * Updated version information in init.c\n    * Updated compiler flag from -fstack-protector to -fstack-protector-strong\n      for better protection.\n    * Cleaned up toplevel Makefile so it stops creating unnecessary temporary\n      directories.\n    * Fixed typo in mountpoint.c. Patch provided by Radostin Stoyanov.\n\n\nsysvinit (2.89) world; urgency=low\n\n  [ Jesse Smith ]\n    * Updated mountpoint command with -p flag. The -p flag causes\n      mountpoint to search for circular mount points. For example, if\n      /a/b/c/d is a mount point for /a/b then the former is a valid\n      mount point. This only works on Linux since it uses /proc/mounts.\n      Updated manual page to match. This fix closes Savannah bug #37114.\n    * Removed two sleep calls when we are doing sync anyway to make sure\n      data is being written. Speeds up reboot time by about two seconds.\n    * Fixed Clang compiler warning regarding variable data parameters to sprintf().\n    * Updated top-level Makefile to work with git repo instead of old svn repo.\n    * Removed unused variables and findtty() function in bootlogd\n    * Add checks to return code for fscanf() called in init.c.\n      This mostly just cleans up compiler warnings.\n    * Perform error check on setuid() call as suggested in manual page.\n    * Fix typo in killall5.c\n      Move initscript sample file from \"src\" to \"doc\" directory and updated\n      Makefile to match.\n    * Allow multiple console output\n    When booting a kernel with multiple serial console support, or multuiple\n    console arguments ala \"console=tty1 console=ttyS0,9600\" the kernel will output\n    messages to all consoles, init however will not. It will only send output to,\n    and accept input from, the last of the consoles.\n    This patch fixes it.\n    (Patch provided by Martin Buck.)\n    * Added Patch from Debian developer Mats Erik Andersson to make\n    ioctl work on GNU/kFreeBSD. Patches bootlogd.\n    * Added Robert Millan's Debian patch to set TERM variable to xterm (instead\n    of cons25) when running on GNU/kFreeBSD.\n    * Added Robert Millan's Debian patch to use /run/initctl as the named\n    pipe for communicating. This works around a limitation on the kFreeBSD\n    branch which prevents us from using /dev/initctl for pipes.\n    * Confirmed we have applied Guillem Jover's patch to make\n    ifdown work on FreeBSD.\n    * Confirmed we have Debian patch to fix enabling SELinux.\n    (Credit to Petter Reinholdtsen)\n    * Confirmed we have Debian patch to make sure utf-8 flag is not cleared from tty.\n    (Credit to Samuel Thibault)\n    * Confirmed we have Roger Leigh's Makefile patch to allow building\n    with multiarch libcrypt.\n    * Applied Justus Winter's symlink patch to make sure killall5\n    builds and runs on Hurd.\n    * Confirmed we have Werner Fink's PATH_MAX patch for getting\n    killall5 to build on Hurd.\n    * Made sure we have Petter Reinholdtsen's patch to init.c which\n    allows init to build on GNU/kFreeBSD despite missing VSWTC.\n     * Dropping Debian patch to use /run/nologin instead of /etc/nologin in paths.h.\n    Seems every distribution uses a different location. Oracle uses /etc/nologin,\n    CentOS seems to use /var/run/nologin.\n    We will use /etc/nologin and let distros patch to suit their own preference.\n    * Updated halt.8 man page with corrections from\n    Christoph Anton Mitterer.\n    * Confirmed we have applied patch from Bjarni Ingi Gislason\n    which fixes typo in fstab-decode man page.\n    * Applied Debian patch to allow init to build on GNU Hurd.\n    (Credit: Roger Leigh)\n    * Confirmed we have Debian patch from developer Johannes Truschnigg\n    which informs the user of field size limit.\n    * Applied patch from Debian to the init manual page (init.8)\n    to better address runlevels. (Author unknown)\n    * The pidof command used to discover the correct PID of\n    a process even if the wrong path was given. For example\n    pidof /wrongpath/sleep would find the PID of a command run as \"sleep\".\n    This bug was reported on Launchpad for Ubuntu and on Savannah.\n    https://bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/1546126\n    http://savannah.nongnu.org/bugs/?47196\n    This bug appears to have been fixed in the development branch,\n    allowing these bugs to be tested/closed.\n    * Confirmed Savannah bug #37114 (mountpoint does not detect\n    mount points using --bind on same file system) still exists,\n    but fixed in Debian and Red Hat.\n    Considering this bug closed since distributions are using\n    util-linux's mountpoint program and ours is no longer\n    built/used by default.\n    Considered importing util-linux mountpoint but that would duplicate\n    effort and pull in a new dependency on libmount.\n    * Problem with pidof breaks after prelink (Savannah bug #34992)\n    fixed. Patch supplied by Dave Dykstra.\n    * Patch to automatically spawn a getty on kernel consoles\n    The feature is useful for developers and admins that occasionally need\n    to boot with e.g. console=ttyS0.\n    The built in default can be overridden via inittab for each device. An\n    entry like \"S0::off:\" turns off the getty on ttyS0.\n    characters in log file. Also makes parsing easier.\n    This should close Savannah bug report 36528.\n    http://savannah.nongnu.org/bugs/?36528\n    * Applied patches provided in Savannah bug report 49991. Fix tabs in\n    bootlogd and avoid printing uninitialized \"buf\" variable when\n    consolename() fails.\n\n  [ Werner Fink ]\n  * Do not forget room for last NULL of new environment (was\n    local bug 35866)\n  * Handle deleted binaries in pidof (was local bug #34992)\n  * Allow init to delete extra environment variables (was local bug\n    #35858)\n  * Avoid that init double environment variables for its children\n    (was local bug #35855)\n  * Remove man-db tag for encoding for canonical man\n  * Sulogin: try to detect the real device(s) used for the system console\n    /dev/console if but only if /dev/console is used.  On Linux this can\n    be more than one device, e.g. a serial line as well as a virtual\n    console as well as a simple printer.\n  * Fix counting message lines in wall. Patch from Petr Lautrbach.\n  * Fix bad printf conversion specifier in wall. Patch from Sébastien Luttringer.\n  * Add patches from Openwall project. Thanks goes to Solar Designer.\n  * Add code to detect the system consoles with the help of the\n    new /proc/consoles files of linux kernel 2.6.38+\n  * Try to make utmpdump IPv6 valid, change based on suggestion from\n    Navdeep Bhatia (see local bug #32429)\n  * Fix signal and alarm handling based on the patch from Florent Viard.\n    (was local bug #32304)\n  * Add fix for Redhat bug #573346: last incorrectly displays IPv6\n    addresses (was local bug #29497)\n  * Correct fix for Debian bug #547073: use IUTF8 flag if defined\n    and if already set to make sure the utf-8 flag is not cleared\n    from the tty. Patch from Samuel Thibault.\n  * Include limits.h in killall.c to enforce definition of PATH_MAX\n  * Fix sysvinit bug #29758 Linker invocation should not contain\n    headers. Change based on patch from Elias Pipping.\n  * Add fix for Debian bug #580272: use return value 1 of\n    is_selinux_enabled() to determine if SELinux is enabled,\n    otherwise initialize SELinux and load the policy. Patch from\n    Petter Reinholdtsen.\n  * Make quotes visible in example of the manual page of fstab-decode\n  * Sulogin: enforce reconnection of stdin/stdout/stderr if a device\n    was specified.\n  * Sulogin: if zero is read at reading the passwd guess it's done.\n  * Sulogin: respect byte order that is do not mix chars and ints\n  * Shutdown: use PATH_DEFAULT as suggested by Paul Arthur in local bug #36101\n  * Killall5/pidof: handle strange names of executables (local bug #36252)\n  * Sulogin: be aware the crypt(3) may fail (local bug #36313)\n\n  [ Petter Reinholdtsen ]\n  * Next release will be 2.89dsf.\n  * Add #ifdef in bootlogd.c to avoid gcc warnings about unused\n    variable on non-linux platforms.\n  * Only set the VSWTC field for termios in init if it is available,\n    to get the source building on FreeBSD.\n  * Add some code to be able to detect programs even as user with\n    kernel 3.0 and above\n  * Improve message printed when signaling processes to stop.\n    Patch from Matias A. Fonzo at the dragora project.\n  * Rename internal functions warn() and shutdown() in the shutdown\n    binary to avoid surprising dynamic library name resolution\n    conflict with NSS modules.  Patch from Richard Tollerton.\n  * Try harder to find libcrypt.*, even if there is no static library\n    available.  Also look in /usr/lib/*/ for the library, to handle\n    Debian multiarch systems.  Based on patch from Andrew Gregory.\n  * Adjust included headers to be compatible with the musl C\n    library.  Patch from Matias A. Fonzo and Dragora.\n  * Move dovoid() macro from #ifdef__GLIBC__ to #ifdef __linux__,\n    to match the condutions of the place where it is used.  Thanks\n    to Matias A. Fonzo for noticing.\n  * Define _XOPEN_SOURCE when building to get crypt() from <unistd.h>\n    instead of using <crypt.h> in sulogin.c, to get the source building\n    with the musl C library.\n  * Use sysconf(_SC_SYMLOOP_MAX) instead of MAXSYMLINKS.  If sysconf\n    returns an error, fall back to MAXSYMLINKS on platforms that\n    define it.  Fixes build on Hurd.  Patch from Justus Winter and\n    Debian.\n  * Adjust makefile to make it easier to link all binaries statically.\n    Patch from Matias A. Fonzo and Dragora.\n  * Rewrite findtty() in bootlogd.c to not chance working directory, to\n    reduce the amount of failure that can happin in that function.\n  * Adapt bootlogd TIOCCONS call to kfreebsd.  Patch from Mats Erik\n    Andersson and Debian.\n  * Document length limit for the process field in the inittab.  Patch\n    from Johannes Truschnigg and Debian.\n  * Fix typo in fstab-decode(8) font escape.  Patch from Bjarni Ingi\n    Gislason and Debian.\n  * Port ifdown.c to FreeBSD.  Patch from Guillem Jover and Debian.\n  * Drop dsf part from version number.  It no longer make sense to keep.\n  * Remove obsolete/ directory from tarball.  None of it have been useful\n    for many years.\n  * Make it possible to specify the initctl path as a compile time\n    define INIT_FIFO.\n  * Use narrowly scoped file descriptor for handling opened TTY in\n    spawn().  Patch from Michał Kulling.\n  * Check exit code from dup() in spawn() and log error if it fail.\n    Patch from Michał Kulling.\n\n -- Petter Reinholdtsen <pere@hungry.com>  Sun Apr 11 11:28:55 CEST 2010\n\nsysvinit (2.88dsf) world; urgency=low\n\n  [ Petter Reinholdtsen ]\n  * Mention new home on Savannah in README.\n  * Revert change from Fedora/RedHat where the now obsolete command\n    INIT_CMD_CHANGECONS was introduced.  Based on feedback and patch\n    from Bill Nottingham.\n  * Adjust makefile to make sure the install directories are created\n    before files are copied into them.\n  * Simplify build rules, based on patch from Mike Frysinger and Gentoo.\n  * Fix minor bug in optimizing of argument parsing.  Based on\n    report from jakemus on freshmeat.\n  * Add casts to get rid of compiler warning about signed/unsigned issues.\n  * Change tty handling in init to make sure the UTF-8 flag is not cleared\n    on boot.  Patch from Samuel Thibault.\n  * Add Makefile in toplevel directory.\n  * Print usage information when shutdown is used by non-root user.\n    Patch from Mike Frysinger and Gentoo.\n  * Sync shutdown manual page and usage information.  Patch from Mike\n    Frysinger and Gentoo.\n  * Fix race condition in utmp writing.  Patch from Gil Kloepfer via\n    Mike Frysinger and Gentoo.\n  * Rewrite findtty() in bootlogd to recursively search /dev/ for the\n    correct device, to handle terminal devices for example in /dev/pty/.\n    Patch from Debian.\n  * Make sure bootlogd findpty() returns an error value when it fails to\n    find a usable pty.  Patch from Rob Leslie via Debian.\n  * Make sure bootlogd fflush() every line, even if asked not to flush\n    to disk using fdatasync().  Patch from Scott Gifford via Debian.\n  * Add compatibility code to handle old path \"/etc/powerstatus\" for a\n    while.\n  * Include definition for MNT_DETACH which is missing in older GNU libc\n    headers.\n  * Do not strip binaries before installing them, to make it easier to\n    get binaries with debug information installed.\n\n  [ Werner Fink ]\n  * Add the comment from Andrea Arcangeli about the correct\n    place of setting the default childhandler within spawn().\n  * Make sure that newline is printed out for last(1) even\n    if an utmp record entry is truncated.\n  * Check if utmp not only exists but also is writable and delay\n    writing out of the utmp runlevel record if utmp is not writable.\n  * Be able to find libcrypt also on 64 bit based architectures.\n  * Add option -w to the last command to display the full user and\n    domain names in the output.  Patch from Petr Lautrbach.\n  * Add a manual page for utmpdump as this tool is sometimes\n    very useful even if not intended for normal use.\n  * Use paths.h macros for wall\n  * Change path \"/etc/powerstatus\" to \"/var/run/powerstatus\"\n  * Detected also removable block devices at halt/reboot to be able\n    to flush data and send them the ATA standby command.  This should\n    avoid data loss on USB sticks and other removable block devices.\n  * Flush block devices on halt/reboot if not done by the kernel.\n  * Set SHELL to /bin/sh in the environmant of shutdown.\n  * Retry to write out shutdown messages if interrupted.\n  * pidof/killall5 - make omit pid list a dynamic one.\n  * pidof - provide '-n' to skip stat(2) syscall on network based FS.\n  * init - avoid compiler warnings\n  * init - initialize console by using the macros from ttydefaults.h\n  * init - add the possibility to ignore further interrupts from keyboard\n  * init - add the possibility to set sane terminal line settings\n  * sulogin - add the possibility to reset the terminal io\n  * Fix some minor problems\n  * init - enable is_selinux_enabled() to detect selinuxfs\n  * Add fix for Debian bug #536574 -- Can be enabled by -DACCTON_OFF\n  * Add helper program fstab-decode to make it easier to handle\n    /etc/mtab content. Patch by Miloslav Trmac and Fedora.\n  * Add fix for Debian bug #335023 - Make sure TERM is set on FreeBSD.\n  * Add fix for Debian bug #374038 - Make it clear that shutdown -c can\n    only cancel a waiting shutdown, not an active one.\n  * Add note to pidof manual page about the use of readlink(2). Patch by\n    Bill Nottingham and Fedora.\n  * Add PAM patch contrib/notify-pam-dead.patch based on Debian bug\n    #68621, which will add PAM support for programs spawned by init on\n    the console like sulogin. Based on patch by Topi Miettinen.  This\n    patch is not applied by default yet while we review its\n    usefulness.  It is only helpful for session handling, as sulogin\n    do not use and will not use a PAM conv() function.  The current\n    sulogin is able to handle DES as well as MD5, SHA, and Blowfish\n    encrypted passwords due using getpwnam(3).\n  * Move utmp/wtmp before the execvp() in spawn() to be sure to\n    use the correct pid even on a controlling tty\n  * Remaining problem is that the pid of the second fork() for\n    getting a controlling tty isn't that reported by spawn()\n  * Re-enable writing utmp/wtmp for boot scripts\n  * Extend sulogin to support additional encryption algorithms\n  * Re-enable maintenance message of sulogin\n  * Enable the sulogin fallback password check to handle  MD5, SHA, and\n    Blowfish encrypted passwords in case of getpwnam(3) fails.\n  * sulogin picking the SELinux context was broken. Patch by Daniel Walsh\n\n -- Petter Reinholdtsen <pere@hungry.com>  Sun Apr 11 11:28:55 CEST 2010\n\nsysvinit (2.87dsf) world; urgency=low\n\n  * Fix typos and do minor updates in the manual pages.\n  * Correct section of mountpoint(1).\n  * Document -e and -t options for telinit in init(8).\n  * Update address of FSF in the COPYRIGHT file.\n  * Document in halt(8) that -n might not disable all syncing.\n    Patch by Bill Nottingham and Fedora\n  * Adjust output from \"last -x\".  In reboot lines, print endpoint\n    of uptime too.  In shutdown lines print downtimes rather than\n    the time between downs.  Fix typo in string compare in last.c.\n    Patch by Thomas Hood.\n  * Improve handling of IPv6 addresses in last.  Patch from Fedora.\n  * Document last options in usage information, previously only\n    mentioned in the manual page.\n  * Add new option -F to last, to output full date string instead\n    of the short form provided by default.  Patch from Olaf Dabrunz\n    and SuSe.\n  * Adjust build rules to make sure the installed binaries\n    are stripped.\n  * Increase the compiler warning level when building.\n  * Fix utmp/wtmp updating on 64-bit platforms.  Patch by Bill\n    Nottingham and Fedora.\n  * Avoid unchecked return value from malloc() in utmpdump.\n    Patch from Christian 'Dr. Disk' Hechelmann and Fedora.\n  * Make sure to use execle and no execl when passing environment to\n    the new process.  Patch from RedHat.\n  * Correct init to make sure the waiting status is preserved across\n    re-exec.  Patch from RedHat.\n  * Correct init to avoid race condition when starting programs during\n    boot.  Patch from SuSe.\n  * Allow 'telinit u' in runlevels 0 and 6.  Patch from Thomas Hood.\n  * Change install rules to make pidof an absolute symlink.  Patch from\n    Thomas Hood.\n  * Improve error message from init if fork() fail.  Patch found in Suse.\n  * Add support for SE Linux capability handling.  Patch from Manoj\n    Srivastava, adjusted to avoid aborting if SE policy was loaded in\n    the initrd with patch from Bill Nottingham and Fedora.\n  * Add -c option to pidof for only matching processes with the same\n    process root.  Ignore -c when not running as root.  Patch from\n    Thomas Woerner and Fedora.\n  * Adjust init to terminate argv0 with one 0 rather than two so that\n    process name can be one character longer.  Patch by Kir Kolyshkin.\n  * Make sure bootlogd exit with non-error exit code when forking of\n    the child successfully.\n  * Add bootlogd option -s to make it possible to control the use of\n    fdatasync().  Patch from Thomas Hood.\n  * Add bootlogd option -c to tell it to create the log file if it does\n    not exist.  Patch from Thomas Hood.\n  * Let bootlogd also look at ttyB* devices to work on HPPA.  Patch\n    from Thomas Hood.\n  * Change init to use setenv() instead of putenv, make sure the PATH\n    value is usable on re-exec.  Patch from Thomas Hood.\n  * Add usleep in killall5 after killing processes, to force the kernel\n    to reschedule.  Patch from SuSe.\n  * Modify pidof to not print empty line if no pid was found.\n  * Modify init and sulogin to fix emergency mode's tty, making sure ^C\n    and ^Z work when booting with 'emergency' kernel option.  Patch from\n    Samuel Thibault.\n  * Modify init to allow some time for failed opens to resolve themselves.\n    Patch from Bill Nottingham and Fedora.\n  * Modify init to shut down IDE, SCSI and SATA disks properly.  Patches\n    from Sebastian Reichelt, Werner Fink and SuSe.\n  * Modify wall to use UT_LINESIZE from <utmp.h> instead of hardcoded\n    string lengths.  Patch from SuSe.\n  * Change wall to make halt include hostname in output.\n  * Change killall to avoid killing init by mistake.  Patch from SuSe.\n  * Change killall5 to use the exit value to report if it found any\n    processes to kill.  Patch from Debian.\n  * Add option -o opmitpid to killall5, to make it possible to skip\n    some pids during shutdown.  Based on patch from Colin Watson and\n    Ubuntu.\n  * Add references between killall5 and pidof manual pages.  Patch from Debian.\n  * Modify killall to work better with user space file system, by\n    changing cwd to /proc when stopping and killing processes, and\n    avoiding stat() when the value isn't used.  Also, lock process\n    pages in memory to avoid paging when user processes are stopped.\n    Patch from Debian and Goswin von Brederlow with changes by Kel\n    Modderman.\n  * Change shutdown to only accept flags -H and -P with the -h flag,\n    and document this requirement in the manual page.\n  * Change reboot/halt to work properly when used as a login shell.\n    Patch by Dale R. Worley and Fedora.\n  * Let sulogin fall back to the statically linked /bin/sash if both roots\n    shell and /bin/sh fail to execute.\n\n -- Petter Reinholdtsen <pere@hungry.com>  Sun, 12 Jul 2009 19:58:10 +0200\n\nsysvinit (2.86) cistron; urgency=low\n\n  * Fixed up bootlogd to read /proc/cmdline. Also keep an internal\n    linebuffer to process \\r, \\t and ^H. It is becoming usable.\n  * Applied trivial OWL patches\n  * Block signals in syslog(), since syslog() is not re-entrant\n    (James Olin Oden <joden@malachi.lee.k12.nc.us>, redhat bug #97534)\n  * Minor adjustments so that sysvinit compiles on the Hurd \n  * killall5 now skips kernel threads\n  * Inittab entries with both 'S' and other runlevels were broken.\n    Fix by Bryan Kadzban <bryan@kadzban.is-a-geek.net>\n  * Changed initreq.h to be more flexible and forwards-compatible.\n  * You can now through /dev/initctl set environment variables in\n    init that will be inherited by its children. For now, only\n    variables prefixed with INIT_ can be set and the maximum is\n    16 variables. There's also a length limit due to the size\n    of struct init_request, so it should be safe from abuse.\n  * Option -P and -H to shutdown set INIT_HALT=POWERDOWN and\n    INIT_HALT=HALT as environment variables as described above\n  * Add \"mountpoint\" utility.\n  * Slightly better algorithm in killall5.c:pidof()\n  * Added some patches from fedora-core (halt-usage, last -t,\n    sulogin-message, user-console)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Fri, 30 Jul 2004 14:14:58 +0200\n\nsysvinit (2.85) cistron; urgency=low\n\n  * Add IPv6 support in last(1)\n  * Sulogin: even if the root password is empty, ask for a password-\n    otherwise there is no way to set a timeout.\n  * Removed support for ioctl.save.\n  * Turned of support for /etc/initrunlvl and /var/run/initrunlvl\n  * Fixed warts in dowall.c (\"Dmitry V. Levin\" <ldv@altlinux.org>)\n  * Fix init.c::spawn(). The \"f\" variable was used both as file descriptor\n    and waitpid(2) return code.  In certain circumstances, this leads to\n    TIOCSCTTY with wrong file descriptor (Vladimir N. Oleynik).\n  * Fix fd leak in sulogin (Dmitry V. Levin).\n  * More error checking in all wait() calling code (Dmitry V. Levin).\n  * Fix argv[] initialization in spawn() (Dmitry V. Levin).\n  * Change strncpy to strncat in most places (Dmitry V. Levin).\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue, 15 Apr 2003 16:37:57 +0200\n\nsysvinit (2.84) cistron; urgency=low\n\n  * Don't use /etc/initlvl interface for telinit; only use /dev/initctl,\n    and give a clear error when that fails.\n  * Add -i/--init command line flag to init - this tells init\n    'behave as system init even if you're not PID#1'. Useful for\n    testing in chroot/jail type environments.\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue, 27 Nov 2001 13:10:08 +0100\n\nsysvinit (2.83) cistron; urgency=low\n\n  * Fix bug in shutdown where it didn't check correctly for a\n    virtual console when checking /etc/shutdown.allow\n  * Fix race condition in waitpid() [Andrea Arcangeli]\n  * Call closelog() after openlog()/syslog() since recent libc's\n    keep the logging fd open and that is fd#0 aka stdin.\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue,  2 Oct 2001 23:27:06 +0200\n\nsysvinit (2.82) cistron; urgency=low\n\n  * Print out correct version number at startup.\n  * Fix spelling of initttab in init(8)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Thu, 23 Aug 2001 17:50:44 +0200\n\nsysvinit (2.81) cistron; urgency=low\n\n  * Fix typo/bug in killall5/pidof, -o option failed to work since 2.79.\n    Reformatted source code to prevent this from happening again.\n  * shutdown.8: applied redhat manpage update\n  * sulogin: applied redhat sysvinit-2.78-sulogin-nologin.patch\n  * sulogin: applied redhat sysvinit-2.78-notty.patch\n  * sulogin: applied redhat sysvinit-2.78-sigint.patch\n\nsysvinit (2.80) cistron; urgency=low\n\n  * Grammar/spelling fixes in shutdown.c (Christian Steinrueck)\n  * Don't set controlling tty for non-(sysinit,boot,single) runlevels\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Thu, 26 Jul 2001 13:26:56 +0200\n\nsysvinit (2.79) cistron; urgency=low\n\n  * New upstream version\n  * several fixes to wall by Tim Robbins <fyre@box3n.gumbynet.org>\n  * Several extra boundary checks by Solar Designer\n  * Make /dev/console controlling tty\n  * Stricter checks on ownership of tty by mesg(1)\n  * Documented and restricted -n option to wall(1)\n  * Make it compile with glibc 2.2.2\n  * Document IO redirection in wall manpage (closes: #79491)\n  * Update README (closes: #85650)\n  * Fix init.8 manpage (closes:  #75268)\n  * Fix typo in halt(8) manpage (closes:  #67875)\n  * Check time argument of shutdown(8) for correctness (closes: #67825)\n  * Check for stale sessions in last(1) (Chris Wolf <cwolf@starclass.com>)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Wed,  4 Jul 2001 15:04:36 +0200\n\nsysvinit (2.78-2) frozen unstable; urgency=high\n\n  * Change \"booting\" to \"reloading\" message at reload\n  * Add \"-z xxx\" dummy command line argument (closes: #54717)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Fri, 11 Feb 2000 12:17:54 +0100\n\nsysvinit (2.78-1) unstable; urgency=low\n\n  * 2.78 will be the new upstream version, I'm skipping 2.77\n  * Shutdown now calls sync before switching the runlevel to 0 or 6,\n    or before unmounting filesystems if -n was used (closes: #46461)\n  * Some cosmetic changes to init.c (closes: #32079)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Thu, 30 Dec 1999 20:40:23 +0100\n\nsysvinit (2.77-2) unstable; urgency=low\n\n  * Fix last -i option\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue,  5 Oct 1999 21:51:50 +0200\n\nsysvinit (2.77-1) unstable; urgency=low\n\n  * Write reboot record into utmp file as well to make rms happy\n  * Fork and dump core in / if SIGSEGV is received for debugging purposes\n  * Patch by Craig Sanders <cas@vicnet.net.au> for \"last\" -i option\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Wed,  4 Aug 1999 11:16:23 +0200\n\nsysvinit (2.76-4) unstable; urgency=low\n\n  * Change dowall.c to handle Unix98 ptys correctly\n  * Add comment in rcS about usage of setup.sh and unconfigured.sh\n  * Shutdown now removes nologin file just before calling telinit\n  * SEGV handler now tries to continue after sleep of 30 seconds.\n    On a 386-class processor it also prints out the value of EIP.\n  * Fix for racecondition in check_init_fifo() by Richard Gooch\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Sat,  8 May 1999 17:22:57 +0200\n\nsysvinit (2.76-3) frozen unstable; urgency=high\n\n  * Small bugfix to last.c courtesy of Danek Duvall <duvall@emufarm.ml.org>\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue, 12 Jan 1999 12:12:44 +0100\n\nsysvinit (2.76-1) frozen unstable; urgency=high\n\n  * Fix bug in check_pipe() which crashes init on the Alpha.\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue,  3 Nov 1998 11:09:13 +0100\n\nsysvinit (2.75-4) unstable; urgency=low\n\n  * Change sulogin password buffer to 128 characters.\n  * Don't print control characters in dowall.c\n  * Try to open getenv (\"CONSOLE\"), /dev/console and /dev/tty0 in order.\n    For backwards compatibility when you try to boot a 2.0.x kernel\n    with a linux > 2.1.70 /dev/console device.\n  * Change src/Makefile for non-debian systems (mainly, RedHat)\n  * Try to create /dev/initctl if not present; check every time to see\n    if the dev/ino of /dev/initctl has changed and re-open it. This should\n    help devfs a bit.\n  * Send SIGUSR1 to init at bootup to let it re-open /dev/initctl;\n    again in support of devfs.\n  * Moved pidof to /bin (it's only a link to killall5 anyway)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Mon,  5 Oct 1998 14:03:14 +0200\n\nsysvinit (2.75-2) frozen unstable; urgency=medium\n\n  * Fix last.c again.\n  * Add check to see if /dev/initctl is really a FIFO\n  * In ifdown.c first down all shaper devices then the real devices\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue,  2 Jun 1998 22:43:01 +0200\n\nsysvinit (2.75-1) frozen unstable; urgency=low\n\n  * Rewrote last.c to be much more memory friendly and correct,\n    thanks to Nick Andrew <nick@zeta.org.au> and\n    David Parrish <dparrish@zeta.org.au>\n  * Fixes bugs:\n    #21616: sysvinit: sulogin thinks md5 root password is bad\n    #21765: sysvinit: Typo in `killall5.c'\n    #21775: sysvinit: sysvinit does not support MD5 hashed passwords\n    #21990: /usr/bin/last: unnecessary memset and off-by-one bug\n    #22084: sysvinit 2.74-4: SIGPWR missing on sparc\n    #21900: init, powerfail events, and shutdown.allow\n    #21702: init 0 does not work as expected...\n    #21728: sysvinit: Typo in `init.c'\n    #22363: sysvinit: discrepance btw. manpage and /sbin/init\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue, 19 May 1998 11:02:29 +0200\n\nsysvinit (2.74-4) frozen unstable; urgency=medium\n\n  * Add -o option to last to process libc5 utmp files.\n  * Buffer overflow fixed in init.c (not very serious; only exploitable\n    by root). Thanks to Chris Evans <chris@ferret.lmh.ox.ac.uk>\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Wed, 15 Apr 1998 17:04:33 +0200\n\nsysvinit (2.74-1) unstable; urgency=low\n\n  * Should compile with glibc 1.99 :)\n  * Change behaviour of reboot(1) and halt(1) so that the default when\n    the runlevel can't be determined is to call shutdown.\n  * Added re-exec patch from Al Viro (21 Feb 1998):\n        'U' flag added to telinit. It forces init to re-exec itself\n        (passing its state through exec, certainly).\n        May be useful for smoother (heh) upgrades.\n        24 Feb 1998, AV:\n        did_boot made global and added to state - thanks, Miquel.\n        Yet another file descriptors leak - close state pipe if\n        re_exec fails.\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Thu, 12 Mar 1998 17:42:46 +0100\n\nsysvinit (2.73-2) unstable; urgency=low\n\n  * Change _NSIG to NSIG for 2.1.x kernel includes.\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Thu,  8 Jan 1998 16:01:02 +0100\n\nsysvinit (2.73-1) unstable; urgency=low\n\n  * Use siginterrupt, now that system calls are restarted by default.\n    Main symptom was that the sulogin timeout didn't work but there\n    might have been more hidden problems.\n  * Kill process immediately if turned off in inittab\n  * Fixed sulogin check on tty arg.\n  * Use strerror() instead of sys_errlist\n  * wall now supports a '-n' option to suppress [most of] the banner.\n    Debian doesn't use sysvinit's wall, but apparently Redhat does.\n  * Add '-F' (forcefsck) option to shutdown\n  * Close and reopen /dev/initctl on SIGUSR1 (mainly for a /dev in ram)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Sat,  3 Jan 1998 16:32:39 +0100\n\nsysvinit (2.72-3) unstable; urgency=low\n\n  * Add extra fork() in dowall.c to avoid hanging in rare cases\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Wed, 22 Oct 1997 14:44:00 +0200\n\nsysvinit (2.72) unstable; urgency=low\n\n  * Applied manual page patches by Bill Hawes <whawes@star.net>.  Thanks Bill!\n  * Applied patches to the sample Slackware scripts by\n    \"Jonathan I. Kamens\" <jik@kamens.brookline.ma.us>\n  * Fix halt and reboot runlevels 0 & 6 check.\n  * Only say \"no more processes left in runlevel x\" once\n  * Fix race condition with SIGCHLD in spawn()\n    (thanks to Alon Ziv <alonz@CS.Technion.AC.IL>)\n  * Compress all manpages (missed 2)\n  * Compiled for libc6\n  * Added poweroff patch by Roderich Schupp <rsch@ExperTeam.de>\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Sun, 12 Oct 1997 17:20:17 +0200\n\nsysvinit (2.71-2) frozen unstable; urgency=low\n\n  * Print 2.71 instead of 2.70 on startup :)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Mon, 5 May 1997 12:45:25 +0200\n\nsysvinit (2.71-1) frozen unstable; urgency=high\n\n  * Added code for updwtmp() in utmp.c for glibc (2.0.3)\n  * Fixed all programs to use functions from utmp.c and getutent()\n  * Do not try to clean up utmp in init itself (Bug#9022)\n  * Removed sync() from main loop.\n  * Hopefully fixes bug #8657 (shutdown signal handling)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Sat, 26 Apr 1997 19:57:27 +0200\n\nsysvinit (2.70-1) unstable; urgency=low\n\n  * Respawn fix\n  * Removed StUdLy CaPs from source code\n  * Moved files in source archive around\n  * Fixes for glibc (utmp handling, signal handling).\n  * Fixed '-d' option to last (now also works without '-a').\n  * Added extra checking in last.c to prevent showing dead entries\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Fri, 7 Feb 1997 15:31:30 +0100\n\nsysvinit (2.69-1) frozen unstable; urgency=medium\n\n  * Fixed bug that can throw X in a loop (or any other app that reads from\n    /dev/tty0)\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Sun, 1 Dec 1996 15:32:24 +0100\n\nsysvinit (2.67-1) frozen unstable; urgency=high\n\n  * Fixes problem with /dev/console being controlling terminal of some\n    daemons\n  * Puts copyright file in the right place\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Fri, 15 Nov 1996 12:23:33 +0100\n\nsysvinit (2.66-1) unstable; urgency=medium\n\n  * Skipped 2.65. A development 2.65 got out by accident and is apparently\n    being used..\n  * Also compiles and runs with GNU libc (and on the Alpha)\n  * Fixed dowall.c not to exit when getpwuid() fails and uid == 0.\n  * Fixed init panic'ing on empty lines in /etc/inittab\n  * Changed default PATH to include /usr/local/sbin\n  * Set /dev/console as controlling terminal for sysinit,bootwait,wait,powerwait\n    This allows using ^C to interrupt some parts of eg the boot process.\n  * Remove old symlink in /var/log/initlvl; let init check both\n    /var/log and /etc itself.\n\n -- Miquel van Smoorenburg <miquels@cistron.nl>  Tue, 29 Oct 1996 13:46:54 +0100\n\n2.66    29-Oct-1996\n- Skipped 2.65. A development 2.65 got out by accident and is apparently\n  being used..\n- Fixed dowall.c not to exit when getpwuid() fails and uid == 0.\n- Fixed init panic'ing on empty lines in /etc/inittab\n- Changed default PATH to include /usr/local/sbin\n- Ported to Linux/Alpha and GNU libc.\n- Set /dev/console as controlling terminal for sysinit,bootwait,wait,powerwait.\n  This allows using ^C to interrupt some parts of eg the boot process.\n- Remove old symlink in /var/log/initlvl; let init check both\n  /var/log and /etc itself.\n\n2.64\t28-Jun-1996\n- Init checks CONSOLE environment variable on startup (overrides /dev/console)\n- Init sets CONSOLE variable for all its children.\n- Wtmp(): when zeroing out old utmp entries, keep ut_id field\n- Wtmp(): try to re-use ut_id field if possible.\n- SetTerm(): only read from /etc/ioctl.save if written once.\n- Included start-stop-daemon, C version (source only).\n- Fixed wait() for the emergency shell.\n- killall5: ignore signal before doing kill(-1, pid).\n\n2.63    14-Jun-1996\n- Fixed preinst script for Debian\n- Fixed init.c to become init daemon if name is init.new\n- Fixed pidof to not return PIDs of shell scripts\n\n2.62-2\t09-Jun-1996\n- Changed debian /etc/init.d/boot script to create a nologin file\n  at boot and to remove it just before going multiuser.\n\n2.62    31-May-1996\n- Decided to release a 2.62 version with a BIG WARNING about upgrading\n  init in it. Will send a patch to Linus for the linux/Documentation/Changes\n  file so that 2.62 or later is mentioned as the version to upgrade to.\n- Added docs for Slackware\n\n2.61-3  29-May-1996\n- Fixed debian/etc/init.d/network for the lo device.\n- Added \"-xdev\" to the cd /tmp && find in debian/etc/init.d/boot\n- Made remove time for files in /tmp configurable.\n\n2.61    29-Apr-1996\n- Changed /etc/init.d/boot script again\n- Fixed problem in init.c with trailing whitespace after entries in inittab\n- Fixed killall5 problems\n- Added manpage for lastb\n- Added SHELL= environment variable to sulogin\n- Fixed sulogin & shadow problems\n- Added timeout option to sulogin\n\n2.60-2  16-Apr-1996\n- Fixed sulogin (didn't work if root wasn't first entry in shadow file)\n- Fixed mesg for systems with \"tty\" group (such as Debian)\n- Fixed nsyslog() in killall5.c\n\n2.60   01-Apr-1996\n- Fixed race condition in init.c, resulting in hanging shutdowns.\n  Courtesy of Max Neunhoeffer <Max.Neunhoeffer@urz.uni-heidelberg.de>.\n- Fixed debian/etc/init.d/boot for swapon and mdadd\n- Added architecture to debian.control\n- Added manpages for rc.boot and rc.local\n- Updated inittab manpage for 4-character runlevel field\n- Added debian replaces for bsdutils < version_without_mesg\n- Fixed init.c so that it also works with kernels 1.3.81 and up\n\n2.59   10-Mar-1996\n- Init logs less to syslog (suspected to hang in syslog() or openlog() )\n- removed closelog() from init.c\n- removed time check of runlevel record in halt.\n- Added options to last to get hostname from ut_addr field\n- Added last and mesg to installation targets\n- rewrote /etc/init.d/boot a bit.\n\n2.58-2 04-Jan-1996\n- Changed etc/init.d/rc to do a stty onlcr\n- Added /var/log/initrunlvl symlink\n\n2.58-1 31-Dec-1995\n- Added the latest debian files.\n- Added support for 4-character id fields (if you have libc5).\n- Fixed pidof (in killall5) parsing of /proc/.../stat\n- Save restore GMT setting in /etc/init.d/boot\n\n2.57d 03-Dec-1995\n- Added sulogin\n- Added \"-b\" flag to init, gives a shell before\n  anything else (in case the startup scripts are screwed)\n- Moved fastboot to /fastboot\n- Folded in Debian patches.\n- Removed old scripts\n- Added debian /etc/directory.\n\n2.57c 08-Oct-1995\n- Changed over to init_request (with initreq.h)\n- Processes no longer killed when \"process\" field\n  changes, change takes effect after next respawn.\n\n2.57b xx-Aug-1995\n- Bugfix release for Debian and Slackware 3.0\n\n2.57a 10-Jul-1995\n- Fixed race condition init init.c wrt got_chld\n- Fixed one-off for malloc in killall5.c\n- Changed dowall.c\n- Console code: no relink to /dev/systty on CTRL-ALT-DEL)\n\n2.57 22-May-1995\n- Changed a few things here and there, didn't\n\t \t  really document it :)\n\n2.55 17-Jan-1995\n- Added option to shutdown to run standalone.\n\n2.54 12-Jan-1995\n- Added GNU copyrigh to all *.[ch] files.\n- added /etc/initscript\n- reboot and halt now call shutdown in runlevels 1-5\n- Can run from read-only root (CDROM)\n\n2.53 10-Oct-1994\n- Renamed pidof to killall5, updated all scripts to\n  use killall5 instead of kill -1 ....\n- Rewrote scripts to use this, and some general changes.\n- Added SysV command line compatibility to shutdown.\n\n2.52 30-Aug-1994\n- Added `powerfailnow' keyword, for when UPS battery is low.\n- Updated `last'.\n- Fixed utmp handling (wrt. CLEAN_UTMP)\nTODO:\n* Make last compatible with GNU/BSD (long options?)\n* update powerd\n* remote SIGPWR broadcast? in powerd? (with priv. port)\n* remote shutdown\n\n2.50  14-Feb-1994\n- Ignores unknown command line arguments.\n- Modelled more after the \"real\" sysVinit\n- Lots of changes all over the place.\n  (like showing runlevel in \"ps\" listing, logging\n   runlevel into utmp file etc)\n- now using \"reliable\" signals instead of V7 style.\n- Updated all scripts. Examples are in two directories:\n  etc (normal) and etc-sysv (sysv style scripts).\n- runlevel 0 = halt, 1 = single user, 6 = reboot.\n- added support for serial console.\n- updated Propaganda, manpages.\n- added shutdown access control.\n\n2.4  24-May-93\n- Send out the official version into the world as\n  SysVinit-2.4.tar.z.\n\n2.4g 15-May-93\n- Changed init to really catch SIGPWR 'cause we\n  hooked up an UPS to the Linux machine. The\n  keyword for catching the TreeFingerSalute is\n  now \"ctrlaltdel\" instead of \"power{wait,fail}\".\n\n2.4a 22-Apr-93\n- Fixed last to reckognize BSD style wtmp logging.\n- Changed init to write wtmp records that are\n  SysV compliant but are also reckognized by the\n  BSD last. Added a '+' option to the 'process'\n  field of inittab, for getties that want to do\n  their own utmp/wtmp housekeeping (kludge!).\n- Now accepts a runlevel on the command line,\n  and reckognizes the 'auto' argument. (Sets the\n  environment variable AUTOBOOT to YES)\n\n2.2.3 24-Mar-93\n- Ripped out the 'leave' action. To difficult, and\n  unneeded.\n- Going single user now kills _all_ processes.\n- Added '-t secs' option to all commands.\n- This version is stable enough to post.\n\n2.2 02-Mar-93\n- Made wait()'s asynchronous\n- Changed whole thing to one big state machine\n- Now using 'pseudo levels' # & * for SYSINIT & BOOT\n- Added a new type of 'action', called leave. This\n  process will be executed when the system goes from a\n  runlevel specified in it's runlevel field to a \n  level that's not. Nice to bring down NFS and the like.\n\n2.1 28-Jan-93\n- Fixed a bug with 'boot' and 'once'.\n- Check 'initdefault' for validity.\n- Reckognizes \"single\" as command line argument.\n- Retries execvp with 'sh -c exec ..' if command\n  is a shell script. (shouldn't execvp do this?)\n- Added patches to use syslog if defined.\n\n2.0 08-Dec-92\n- Rewrote the code totally, so started with a new\n  version number.\n- Dropped Minix support, this code now is Linux - specific.\n- With TEST switch on, this init & telinit can\n  run standalone for test purposes.\n\n1.3, 05-Jul-92\n- Got a 386, so installed Linux. Added 'soft' reboot\n  to be default under linux. Fixed some typos.\n\n1.2, 16-Jun-92\n- Bugreport from Michael Haardt ; removed deadlock\n  and added 'waitpid' instead of 'wait' for SYSV.\n\n1.1, 30-Apr-92\n- Read manual wrong: there is no 'action' field called\n  process, but all entries are of type process. Every\n  'process' get exec'ed by /bin/sh -c 'exec command'.\n- Rapidly respawning processes are caught in the act.\n- _SYSV support is really Linux support,\n  done by poe@daimi.aau.dk on 25-Mar-92.\n\n 1.0, 01-Feb-92\n- Initial version, very primitive for the Minix\n  operating system. Required some mods. to the\n  kernel.\n\n"
  },
  {
    "path": "doc/Install",
    "content": "\nInstall instructions for the System V style init\n\ninit, shutdown, halt, reboot, wall, last, mesg, runlevel,\nkillall5, pidof, sulogin.\n\nAll programs, files and scripts in this package are covered by\nthe GNU General Public License version 2, and copyrighted by\nMiquel van Smoorenburg (1991-2004) and, Jesse Smith (2018). \n\nIf you are not using Debian and the debianized package,\nyou may have to install the new init by hand if Debian is\nusing an init system other than SysV (eg systemd). You should\nbe able to drop the binaries into a Slackware or Devuan system, I think.\n\nThe SysV init software, core programs and manual pages can be\ninstalled by running the following two commands from the top-level\nsource directory.\n\nmake\nsudo make install\n\nIf sudo is not installed, the \"make install\" command may be run as\nthe root user.\n\nOther than the GNU make utility, SysV init has few dependencies.\nSysV can be built on virtually any Linux system featuring\nthe GNU C library or musl libc. A C compiler, such as the GNU Compiler\nCollection (GCC) or Clang is also required.\n\nOn systems which want to provide translated versions of manual pages\nthe po4a package should be installed.\n\nHere is a list of preferred directories to install the progs & manpages,\nthis should be done for you automatically when you run \"make install\"\nas the root user, or via sudo, ie \"sudo make install\".\n\nwall.1, last.1, mesg.1\t   /usr/man/man1\ninittab.5, initscript.5\t   /usr/man/man5\ninit.8, halt.8, reboot.8,\nshutdown.8, powerd.8,\nkillall5.8, pidof.8,\nrunlevel.8, sulogin.8\t   /usr/man/man8\n\ninit\t\t\t   /sbin/init\ninittab\t\t   \t   /etc/inittab\ninitscript.sample          /etc/initscript.sample\ntelinit\t\t   \t   a link (with ln(1) ) to init, either\n\t\t\t   in /bin or in /sbin.\nhalt\t\t\t   /sbin/halt\nreboot\t\t\t   a link to /sbin/halt in the same directory\nkillall5\t\t   /sbin/killall5\npidof\t\t\t   a link to /sbin/killall5 in the same directory.\nrunlevel\t\t   /sbin/runlevel\nshutdown\t\t   /sbin/shutdown.\nwall\t\t\t   /usr/bin/wall\nmesg\t\t\t   /usr/bin/mesg\nlast\t\t\t   /usr/bin/last\nsulogin\t\t\t   /sbin/sulogin\nbootlogd\t\t   /sbin/bootlogd\nutmpdump                   don't install, it's just a debug thingy.\n\nIf you already _have_ a \"wall\" in /bin (the SLS release had, for example)\ndo _not_ install this version of wall. Chances are that the wall you are already\nusing is linked to /bin/write. Either first _remove_ /bin/wall before\ninstalling the new one, or don't install the new one at all.\n\nYou might want to create a file called \"/etc/shutdown.allow\". Read the\nmanual page on shutdown to find out more about this.\n\nRunning from a read-only file system (CDROM?):\n* All communication to init goes through the FIFO /run/initctl.\n  There should be no problem using a read-only root file system\n  If you use a Linux kernel > 1.3.66. Older kernels don't allow\n  writing to a FIFO on a read-only file system.\n \n"
  },
  {
    "path": "doc/Propaganda",
    "content": "\n\n\tPropaganda for version 2.89 of sysvinit & utilities\n\t==================================================\n\nNOTE: If you use a standard distribution like Slackware, Devuan\nor Gentoo there probably is no need to upgrade. Installing sysvinit\nis only for those that upgrade their system by hand or for people\nthat create Linux distributions.\n\nSysV init was probably the most widely used init package for Linux.\nMost distributions once used it. sysvinit 2.4 was really a good package,\nand it was not the need for bug fixes but the need for more features\nthat made me work on sysvinit again.\n\nSysV init is now a Debian package. Debian source packages are not\nspecial in any way -- in fact you can just unpack and compile\nit on any other Linux distribution.\n\nThere was a 2.50 release of sysvinit but that was not very popular-\nsome of the included scripts broke with certain shells and other\nminor things like that. Unfortunately I was not able to fix this\nat the time because I was abroad for some time. Therefore the\ndescription below is a comparison of 2.4 and 2.58 (actually the\nsame blurb as from the 2.50 announce but updated).\n\nWrt 2.4, some of the code has been made simpler. Everything, from\nhalt to reboot to single user mode is now done by shell scripts\nthat are executed directly by init (from /etc/inittab), so shutdown\ndoes not kill processes anymore and then calls reboot - it merely\ndoes some wall's to the logged in users and then switches to\nrunlevel 0 (halt), 1 (single user) or 6 (reboot).\n\nI have removed support for the old style scripts; the included\nexample scripts are the Debian GNU/Linux distribution scripts.\nThis does not mean that eg the Slackware scripts stop to work;\nyou can probably drop this init into Slackware 3.0 without problems.\n\nMost people have an entry in inittab to run shutdown when CTRL-ALT-DEL\nis pressed; a feature has been added to shutdown to check if a\nauthorized user is logged in on one of the consoles to see if a\nshutdown is allowed. This can be configured with an access file.\n\nSome other general changes:\n- utility \"runlevel\" to read the current and previous runlevel from\n  /var/run/utmp (it's also shown on the command line if you do a \"ps\").\n- unreckognized options are silently ignored (such as the infamous\n  \"ro\" - mount root file system read only).\n- if the file /etc/initscript is present it will be used to launch\n  all programs that init starts (so that you can set a generic\n  umask, ulimit eg for ALL processes - see initscript.sample).\n- A \"sulogin\" program added that always asks for the root\n  passsword before entering single user mode.\n- A \"-b\" flag to init that starts a shell at boot time before\n  _any_ other processing.\n- I moved /etc/fastboot to /fastboot - wonder what that's gonna break :)\n- I even updated the manpages!\n\nRight, now some boring stuff you already know since it's the same\nas in the 2.4 release:\n\nThe sysvinit package includes\n\n* a SysV compatible /sbin/init program\n* a telinit program (er, just a link to /sbin/init) to change runlevels\n* a featureful shutdown\n* halt and reboot to assist shutdown\n* a very forgiving last utility\n* the wall & mesg programs (not installed by default)\n* manpages for everything\n\nThe new SysV init can be found on:\n\nhttps://github.com/slicer69/sysvinit\n"
  },
  {
    "path": "doc/bootlogd.README",
    "content": "\nbootlogd: a way to capture all console output during bootup\n          in a logfile.\n\n- bootlogd opens /dev/console and finds out what the real console is\n  with an ioctl() if TIOCCONS is available\n- otherwise bootlogd tries to parse /proc/cmdline for console=\n  kernel command line arguments\n- then opens the (most probable) real console\n- allocates a pty pair\n- redirects console I/O to the pty pair\n- then goes in a loop reading from the pty, writing to the real\n  console and a logfile as soon as a r/w partition is available,\n  buffering in memory until then.\n\nAs soon as bootlogd exits or gets killed, the pty is closed and the\nredirection will be automatically undone by the kernel. So that's\npretty safe.\n\n"
  },
  {
    "path": "doc/initctl",
    "content": "This document describes the communiction pipe set up by SysV init\nat /run/initctl. This named pipe allows programs with the proper\npermissions (typically programs run by root have read+write access to\nthe pipe) to send signals to the init program (PID 1).\n\nThe init manual page has, up until recently, simply stated\nthat people wishing to understand how to send messages to init\nshould read the init program's source code, but that is not usually practical.\n\nMessages sent to the pipe to talk to init must have a special format.\nThis format is defined as a C structure and the technical break-down\nis presented here:\n\n/*\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 */\nstruct 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\n\nLet's go through the init_request structure one line at a time. The\nfirst variable, the \"magic\" number must be of the value 0x03091969.\nThe init program then knows that only programs with root access which send\nthis magic number are authorized to communicate with init.\n\nThe cmd variable is a value in the range of 0-8 (currently). This cmd\nvariable tells init what we want it to do. Here are the possible options:\n\n1 - Set the current runlevel, specified by the runlevel variable.\n2 - The power will fail soon (probably low battery) prepare to shutdown.\n3 - The power is failing, do shutdown immediately.\n4 - The power is okay, cancel shutdown.\n6 - Set an environment variable to a value to be specified in \n    the data variable of this structure.\n\nOther cmd options may be added to init later. For example, command values\n0, 5 and 7 are defined but currently not implemented.\n\nThe runlevel variable will specify the runlevel to switch to (0-6).\n\nThe sleeptime variable is to be used when we want to tell init to change\nthe time spent waiting between sending SIGTERM and SIGKILL during the\nshutdown process. Changing this at run time is not yet implemented.\n\nThe data variable (in the union) can be used to pass misc data which init\nmight need to process our request. For example, when setting environment\nvariables.\n\nWhen setting an environment variable through init's /run/initctl pipe,\nthe data variable should have the format VARIABLE=VALUE. The string\nshould be terminated with a NULL '\\0' character.\n\n\nThe following C code example shows how to send a set environment variable\nrequest to the init process using the /run/initctl pipe. This example\nis simplified and skips the error checking. A more comlpete example can be\nfound in the shutdown.c program's init_setnv() function.\n\n\nstruct init_request     request;           /* this is the structure defined above */\nint                     fd;                /* file descriptor for the pipe */\n\nmemset(&request, 0, sizeof(request));      /* initialize structure */\nrequest.magic = 0x03091969;                /* this magic number must be included */\nrequest.cmd = 6;                           /* 6 is the command to set a variable */\nsprintf(request.data, \"VARIABLE=VALUE\");   /* set VARIABLE to VALUE  in init */\nif ((fd = open(INIT_FIFO, O_WRONLY)) >= 0) /* open pipe for writing */\n{ \n    size_t s  = sizeof(request);           /* size of the structure to write */\n    void *ptr = &request;                  /* temporary pointer */\n    write(fd, ptr, s);                     /* send the structure to the pipe */\n    close(fd);                             /* close the pipe when done */\n}\n\n\n\nUsually the /run/initctl pipe would only be used by low-level programs to\nrequest a power-related shutdown or change the runlevel, like telinit\nwould do. Most of the time there is no need to talk to init directly, but\nthis gives us an extenable approach so init can be taught how to learn\nmore commands.\n\n"
  },
  {
    "path": "doc/initscript.sample",
    "content": "#\n# initscript\tIf this script is intalled as /etc/initscript,\n#\t\tit is executed by init(8) for every program it\n#\t\twants to spawn like this:\n#\n#\t\t/bin/sh /etc/initscript <id> <level> <action> <process>\n#\n#\t\tIt can be used to set the default umask and ulimit\n#\t\tof all processes. By default this script is installed\n#\t\tas /etc/initscript.sample, so to enable it you must\n#\t\trename this script first to /etc/initscript.\n#\n# Version:\t@(#)initscript 1.10 10-Dec-1995 MvS.\n#\n# Author:\tMiquel van Smoorenburg, <miquels@cistron.nl>\n#\n\n  # Set umask to safe level, and enable core dumps.\n  umask 022\n  ulimit -c 2097151\n  PATH=/bin:/sbin:/usr/bin:/usr/sbin\n  export PATH\n\n  # Execute the program.\n  eval exec \"$4\"\n"
  },
  {
    "path": "man/Makefile",
    "content": "MANPAGES=bootlogd.8 fstab-decode.8 halt.8 init.8 initctl.5 initscript.5 inittab.5 \\\nkillall5.8 last.1 lastb.1 logsave.8 mesg.1 mountpoint.1 pidof.8 poweroff.8 \\\nreadbootlog.1 reboot.8 runlevel.8 shutdown.8 sulogin.8 telinit.8 utmpdump.1 \\\nwall.1\n\nPO4A := $(shell command -v po4a 2> /dev/null)\n\nPO4A_OPTS = --previous --srcdir po/ --destdir ./ --no-backups --stamp \\\n            --package-name sysvinit --package-version $(VERSION) \\\n            --msgid-bugs-address \"Jesse <jsmith@resonatingmedia.com>\"\n\nall:\n\tsed --in-place=.orig --separate 's/\\@VERSION\\@/$(VERSION)/g' $(MANPAGES)\nifdef PO4A\n\tpo4a $(PO4A_OPTS) po/po4a.cfg\nelse\n\t@echo 'Install po4a to build translated manpages'\nendif\n\n# Installation recipes are in ../src/Makefile\ninstall: all\n\nclean distclean:\nifdef PO4A\n\tpo4a $(PO4A_OPTS) --rm-translations po/po4a.cfg\nendif\n\trm -f *.po sysvinit-man.pot\n"
  },
  {
    "path": "man/bootlogd.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2003 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by \n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  \n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH BOOTLOGD 8 \"Jul 21, 2003\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.SH NAME\nbootlogd \\- record boot messages\n.SH SYNOPSIS\n.B /sbin/bootlogd\n.RB [ \\-c ]\n.RB [ \\-d ]\n.RB [ \\-e ]\n.RB [ \\-r ]\n.RB [ \\-s ]\n.RB [ \\-v ]\n.RI [ \" \\fB-l\\fP logfile \" ]\n.RI [ \" \\fB-p\\fP pidfile \" ]\n.SH DESCRIPTION\n\\fBbootlogd\\fP runs in the background and copies all strings sent to the\n\\fI/dev/console\\fP device to a logfile. If the \\fIlogfile\\fP is not accessible,\nthe messages will be kept in memory until it is.\n.SH OPTIONS\n.IP \\fB\\-d\\fP\nDo not fork and run in the background.\n.IP \\fB\\-e\\fP\nPrint escape characters to the boot log file. This turns off filtering of\nescape characters and allows tools like GNU \\fBless\\fP(1) to see and use\ncolour control characters (show the log in colour).\n.IP \\fB\\-c\\fP\nAttempt to write to the logfile even if it does not yet exist.\nWithout this option, \\fBbootlogd\\fP will wait for the logfile to appear before\nattempting to write to it. This behavior prevents \\fBbootlogd\\fP from creating\nlogfiles under mount points.\n.IP \\fB\\-r\\fP\nIf there is an existing logfile called \\fIlogfile\\fP rename it to\n\\fIlogfile~\\fP unless \\fIlogfile~\\fP already exists.\n.IP \\fB\\-s\\fP\nEnsure that the data is written to the file after each line by calling\n.BR fdatasync (3).\nThis will slow down a\n.BR fsck (8)\nprocess running in parallel.\n.IP \\fB\\-v\\fP\nShow version.\n.IP \"\\fB\\-l\\fP \\fIlogfile\\fP\"\nLog to this logfile. The default is \\fI/var/log/boot\\fP.\n.IP \"\\fB\\-p\\fP \\fIpidfile\\fP\"\nPut process-id in this file. The default is no pidfile.\n.SH NOTES\n\\fBbootlogd\\fP saves log data which includes control characters. The log is\ntechnically a text file, but not very easy for humans to read. To address\nthis the \\fBreadbootlog\\fP(1) command can be used to display the boot log\nwithout the control characters.\n.SH BUGS\n\\fBbootlogd\\fP works by redirecting the console output from the console device.\n(Consequently \\fBbootlogd\\fP requires PTY support in the kernel configuration.)\nIt copies that output to the real console device and to a log file.\nThere is no standard way of ascertaining the real console device\nif you have a new-style \\fI/dev/console\\fP device (major 5, minor 1)\nso \\fBbootlogd\\fP parses the kernel command line looking for\n\\fBconsole=...\\fP lines and deduces the real console device from that.\nIf that syntax is ever changed by the kernel, or a console type is used that\n\\fBbootlogd\\fP does not know about then \\fBbootlogd\\fP will not work.\n\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.SH \"SEE ALSO\"\n.BR dmesg (8),\n.BR fdatasync (3),\n.BR readbootlog (1)\n"
  },
  {
    "path": "man/fstab-decode.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" A man page for fstab-decode(8).\n.\\\"\n.\\\" Copyright (C) 2006 Red Hat, Inc. All rights reserved.\n.\\\"\n.\\\" This copyrighted material is made available to anyone wishing to use,\n.\\\" modify, copy, or redistribute it subject to the terms and conditions of the\n.\\\" GNU General Public License v.2.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful, but WITHOUT\n.\\\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n.\\\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\n.\\\" more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License along\n.\\\" with this program; if not, write to the Free Software Foundation, Inc.,\n.\\\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n.\\\"\n.\\\" Author: Miloslav Trmac <mitr@redhat.com>\n.TH FSTAB-DECODE 8 \"May 2006\" \"sysvinit \" \"Linux System Administrator's Manual\"\n\n.SH NAME\nfstab-decode \\- run a command with fstab-encoded arguments\n\n.SH SYNOPSIS\n.B fstab-decode\n.IR COMMAND \" [\" ARGUMENT \" \\&.\\|.\\|.\\&]\"\n\n.SH DESCRIPTION\n.B fstab-decode\ndecodes escapes (such as newline characters and other whitespace)\nin the specified\n.IR ARGUMENT s\nand uses them to run\n.IR COMMAND .\nThe argument escaping uses the same rules as path escaping in\n.IR /etc/fstab \", \" /etc/mtab \" and \" /proc/mtab .\n\nIn essence \\fBfstab-decode\\fR can be used anytime we want to pass multiple\nparameters to a command as a list of command line arguments.\nIt turns output like this:\n\n.nf\n/root\n/mnt/remote-disk\n/home\n.fi\n\nInto one long list of parameters, \"/root /mnt/remote-disk /home\".\nThis can be useful when trying to work with multiple filesystems at once.\nFor instance, we can use it to unmount multiple NFS shares.\nThis program also removes whitespace and\nother characters which might cause programs such as\n\\fBmount\\fR(8) or \\fBumount\\fR(8) to fail.\n\n.SH EXIT STATUS\n.B fstab-decode\nexits with status 127 if\n.I COMMAND\ncan't be run.\nOtherwise it exits with the status returned by\n.IR COMMAND .\n\n.SH EXAMPLES\nThe following example reads\n.IR fstab ,\nfinds all instances of VFAT filesystems\nand prints their mount points\n(argument 2 in the\n.I fstab\nfile).\n.B fstab-decode\nthen runs the specified program, \\fBumount\\fR(8), and passes\nit the list of VFAT mountpoints.\nThis unmounts all VFAT partitions.\n\n.nf\n.B fstab-decode umount $(awk \\[aq]$3 == \\[dq]vfat\\[dq] { print $2 }\\[aq] \\\n/etc/fstab)\n.fi\n\n.SH SEE ALSO\n.BR fstab (5)\n"
  },
  {
    "path": "man/halt.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2001 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH HALT 8 \"Nov 6, 2001\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\nhalt, reboot, poweroff \\- stop the system\n.\\\"}}}\n.\\\"{{{  Synopsis\n.SH SYNOPSIS\n.B /sbin/halt\n.RB [ \\-d ]\n.RB [ \\-f ]\n.RB [ \\-h ]\n.RB [ \\-i ]\n.RB [ \\-n ]\n.RB [ \\-p ]\n.RB [ \\-w ]\n.br\n.B /sbin/reboot\n.RB [ \\-d ]\n.RB [ \\-f ]\n.RB [ \\-i ]\n.RB [ \\-k ]\n.RB [ \\-m\\ <message> ]\n.RB [ \\-n ]\n.RB [ \\-w ]\n.br\n.B /sbin/poweroff\n.RB [ \\-d ]\n.RB [ \\-f ]\n.RB [ \\-h ]\n.RB [ \\-i ]\n.RB [ \\-n ]\n.RB [ \\-w ]\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\n\\fBhalt\\fP notes that the system is being brought down in the file\n\\fI/var/log/wtmp\\fP, and then either tells the kernel to halt, reboot or\npower-off the system.\n.PP\nIf \\fBhalt\\fP or \\fBreboot\\fP is called when the system is\n\\fInot\\fP in runlevel \\fB0\\fP or \\fB6\\fP, in other words when it's running\nnormally, \\fBshutdown\\fP will be invoked instead (with the \\fB\\-h\\fP\nor \\fB\\-r\\fP flag).\nFor more info see the \\fBshutdown\\fP(8) manpage.\n.PP\nThe rest of this manpage describes the behavior in runlevels 0\nand 6, that is when the systems shutdown scripts are being run.\n.\\\"}}}\n.\\\"{{{  Options\n.SH OPTIONS\n.IP \\fB\\-d\\fP\nDon't write the wtmp record.\n.IP \\fB\\-f\\fP\nForce halt or reboot, don't call \\fBshutdown\\fP(8).\n.IP \\fB\\-h\\fP\nPut all hard drives on the system in stand-by mode\njust before halt or power-off.\n.IP \\fB\\-i\\fP\nShut down all network interfaces just before \\fBhalt\\fR or \\fBreboot\\fR.\nWarning: This may not work on interfaces which do not have an IP address\nand should ideally be handled by a network manager service.\n.IP \\fB\\-k\\fP\nTry to reboot using \\fBkexec\\fP, if kernel supports it.\n.IP \\fB\\-m\\fP\nWhen running on a Linux system, any quoted parameter after the\n\\-m flag will be passed to the firmware to be interpreted at boot time.\nSome systems, like the Raspberry Pi,\ncan use this to switch target partitions.\nPlease note, this parameter enables \\-f,\nforcing the reboot command to handle shutting down itself.\n.IP \\fB\\-n\\fP\nDon't sync before reboot or halt.\nNote that the kernel and storage drivers may still sync.\nThis implies \\fB\\-d\\fP.\n.IP \\fB\\-p\\fP\nWhen halting the system, switch off the power.\nThis is the default when \\fBhalt\\fR is called as \\fBpoweroff\\fP.\n.IP \\fB\\-w\\fP\nDon't actually reboot or halt but only write the wtmp record\n(in the \\fI/var/log/wtmp\\fP file).\n.\\\"}}}\n.\\\"{{{  Diagnostics\n.SH DIAGNOSTICS\nIf you're not the superuser, you will get the message `must be superuser'.\n.\\\"}}}\n.\\\"{{{  Notes\n.SH NOTES\nUnder older \\fBsysvinit\\fP releases, \\fBreboot\\fP and \\fBhalt\\fP should\nnever be called directly.\nFrom release 2.74 on,\n\\fBhalt\\fP and \\fBreboot\\fP invoke \\fBshutdown\\fP(8)\nif the system is not in runlevel 0 or 6.\nThis means that if \\fBhalt\\fP or \\fBreboot\\fP cannot find out the current\nrunlevel\n(for example, when \\fI/var/run/utmp\\fP hasn't been initialized correctly and\n\\fI/var/run/runlevel\\fR does not exist)\n\\fBshutdown\\fP will be called,\nwhich might not be what you want.\nUse the \\fB\\-f\\fP flag if you want to do a hard \\fBhalt\\fP or \\fBreboot\\fP.\n.PP\nThe \\fB\\-h\\fP flag puts all hard disks in standby mode just before halt\nor power-off.\nRight now this is only implemented for IDE drives.\nA side effect of putting the drive in stand-by mode is\nthat the write cache on the disk is flushed.\nThis is important for IDE drives,\nsince the kernel doesn't flush the write cache itself before power-off.\n.PP\nThe \\fBhalt\\fP program uses \\fI/proc/ide/hd*\\fR to find all IDE disk devices,\nwhich means that \\fI/proc\\fP needs to be mounted when \\fBhalt\\fP or\n\\fBpoweroff\\fP is called or the \\fB\\-h\\fP switch will do nothing.\n.\\\"}}}\n.\\\"{{{  Author\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR shutdown (8),\n.BR init (8)\n.\\\"}}}\n"
  },
  {
    "path": "man/init.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2004 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH INIT 8 \"29 Jul 2004\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\ninit, telinit \\- process control initialization\n.\\\"}}}\n.\\\"{{{  Synopsis\n.SH SYNOPSIS\n.B /sbin/init\n.RB [ \" \\-a \" ]\n.RB [ \" \\-s \" ]\n.RB [ \" \\-b \" ]\n[ \\fB\\-z\\fP \\fIxxx\\fP ]\n.RB [ \" 0123456Ss \" ]\n.br\n.B /sbin/init\n.RB [ \" \\-\\-version \" ]\n.br\n.B /sbin/telinit\n[ \\fB\\-t\\fP \\fISECONDS\\fP ]\n.RB \n.IR 0123456sSQqabcUu \n.br\n.B /sbin/telinit\n[ \\fB\\-e\\fP \\fIVAR\\fP[\\fB=\\fP\\fIVAL\\fP] ]\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\n.\\\"{{{  init\n.SS Init\n.B init\nis the parent of all processes.  Its primary role is to create processes\nfrom a script stored in the file \\fI/etc/inittab\\fR (see\n\\fBinittab\\fR(5)).  This file usually has entries which cause \\fBinit\\fR\nto spawn \\fBgetty\\fRs on each line that users can log in.  It also\ncontrols autonomous processes required by any particular system.\n.\n.\\\"{{{ Runlevels\n.SH RUNLEVELS\nA \\fIrunlevel\\fR is a software configuration of the system which allows\nonly a selected group of processes to exist.  The processes spawned by\n\\fBinit\\fR for each of these runlevels are defined in the\n\\fI/etc/inittab\\fR file.  \\fBinit\\fR can be in one of eight runlevels:\n\\fB0\\(en6\\fP and \\fBS\\fP (a.k.a., \\fBs\\fP).  The runlevel is\nchanged by having a privileged user run \\fBtelinit\\fP, which sends\nappropriate signals to \\fBinit\\fP, telling it which runlevel to change\nto.\n.PP\nRunlevels \\fBS\\fP, \\fB0\\fP, \\fB1\\fP, and \\fB6\\fP are reserved.\nRunlevel S is used to initialize the system on boot.\nWhen starting runlevel S (on boot)\nor runlevel 1 (switching from a multi-user runlevel)\nthe system is entering ``single-user mode'', after which the\ncurrent runlevel is S.\nRunlevel 0 is used to halt the system;\nrunlevel 6 is used to reboot the system.\n.PP\nAfter booting through S the system automatically enters one of\nthe multi-user runlevels 2 through 5, unless there was some\nproblem that needs to be fixed by the administrator in\nsingle-user mode.\nNormally after entering single-user mode\nthe administrator performs maintenance and then reboots the system.\n.PP\nFor more information,\nsee the manpages for \\fBshutdown\\fP(8) and \\fBinittab\\fP(5).\n.PP\nRunlevels 7\\(en9 are also valid, though not really documented.\nThis is because \"traditional\" Unix variants don't use them.\n.PP\nRunlevels \\fIS\\fP and \\fIs\\fP are the same.\nInternally they are aliases for the same runlevel.\n.\\\"}}}\n.\n.SH BOOTING\nAfter \\fBinit\\fP is invoked as the last step of the kernel boot sequence,\nit looks for the file \\fI/etc/inittab\\fP to see if there is an entry of the\ntype \\fBinitdefault\\fP (see \\fBinittab\\fR(5)).\nThe \\fBinitdefault\\fP entry determines the initial runlevel of the system.\nIf there is no such entry\n(or no \\fI/etc/inittab\\fR at all),\na runlevel must be entered at the system console.\n.PP\nRunlevel \\fBS\\fP or \\fBs\\fP initialize the system\nand do not require an \\fI/etc/inittab\\fP file.\n.PP\nIn single user mode, \\fB/sbin/sulogin\\fP is invoked on \\fI/dev/console\\fP.\n.PP\nWhen entering single user mode,\n\\fBinit\\fP initializes the consoles \\fBstty\\fP settings to sane values.\nClocal mode is set.\nHardware speed and handshaking are not changed.\n.PP\nWhen entering a multi-user mode for the first time, \\fBinit\\fP performs the\n\\fBboot\\fP and \\fBbootwait\\fP entries to allow file systems to be\nmounted before users can log in.  Then all entries matching the runlevel\nare processed.\n.PP\nWhen starting a new process,\n\\fBinit\\fP first checks whether the file \\fI/etc/initscript\\fP exists.\nIf it does, it uses this script to start the process.\n.PP\nEach time a child terminates, \\fBinit\\fP records the fact and the reason\nit died in \\fI/var/run/utmp\\fP and \\fI/var/log/wtmp\\fP,\nprovided that these files exist.\n.SH CHANGING RUNLEVELS\nAfter it has spawned all of the processes specified, \\fBinit\\fP waits\nfor one of its descendant processes to die, a powerfail signal, or until\nit is signaled by \\fBtelinit\\fP to change the system's runlevel.\nWhen one of the above three conditions occurs, it re-examines\nthe \\fI/etc/inittab\\fP file.  New entries can be added to this file at\nany time.  However, \\fBinit\\fP still waits for one of the above three\nconditions to occur.\nTo provide for an instantaneous response,\nthe \\fBtelinit Q\\fP or \\fBq\\fP command can wake up \\fBinit\\fP to re-examine\n(reload) the \\fI/etc/inittab\\fP file.\n.PP\nIf \\fBinit\\fP is not in single user mode and receives a powerfail\nsignal (SIGPWR),\nit reads the file \\fI/etc/powerstatus\\fP.\nIt then starts a command based on the contents of this file:\n.IP F(AIL)\nPower is failing,\nUPS is providing the power.\nExecute the \\fBpowerwait\\fP and \\fBpowerfail\\fP entries.\n.IP O(K)\nThe power has been restored, execute the \\fBpowerokwait\\fP entries.\n.IP L(OW)\nThe power is failing and the UPS has a low battery.\nExecute the \\fBpowerfailnow\\fP entries.\n.PP\nIf \\fI/etc/powerstatus\\fR doesn't exist or contains anything else then the\nletters \\fBF\\fP, \\fBO\\fP or \\fBL\\fP, \\fBinit\\fR will behave as if it has read\nthe letter \\fBF\\fP.\n.PP\nUsage of \\fBSIGPWR\\fP and \\fI/etc/powerstatus\\fP is discouraged.\nSomeone wanting to interact with \\fBinit\\fP should use the \\fI/run/initctl\\fP\ncontrol channel \\(en\nsee the \\fBinitctl\\fR(5) manual page for more documentation about this.\n.PP\nWhen \\fBinit\\fP is requested to change the runlevel, it sends the\nwarning signal \\fBSIGTERM\\fP to all processes that are undefined\nin the new runlevel.  It then waits 3 seconds before forcibly\nterminating these processes via the \\fBSIGKILL\\fP signal.\nNote that \\fBinit\\fP assumes that all these processes (and their\ndescendants) remain in the same process group which \\fBinit\\fP\noriginally created for them.  If any process changes its process group\naffiliation it will not receive these signals.  Such processes need to\nbe terminated separately.\n.\\\"}}}\n.\\\"{{{  telinit\n.SH TELINIT\n\\fB/sbin/telinit\\fP is linked to \\fB/sbin/init\\fP.  It takes a\none-character argument and signals \\fBinit\\fP to perform the appropriate\naction.  The following arguments serve as directives to\n\\fBtelinit\\fP:\n.IP \"\\fB0\\fP, \\fB1\\fP, \\fB2\\fP, \\fB3\\fP, \\fB4\\fP, \\fB5\\fP or \\fB6\\fP\"\ntell \\fBinit\\fP to switch to the specified run level.\n.IP \"\\fBa\\fP, \\fBb\\fP, \\fBc\\fP\"\ntell \\fBinit\\fP to process only those \\fB/etc/inittab\\fP file\nentries having runlevel \\fBa\\fP, \\fBb\\fP or \\fBc\\fP.\n.IP \"\\fBQ\\fP or \\fBq\\fP\"\ntell \\fBinit\\fP to re-examine the \\fI/etc/inittab\\fP file.\n.IP \"\\fBS\\fP or \\fBs\\fP\"\ntell \\fBinit\\fP to switch to single user mode.\n.IP \"\\fBU\\fP or \\fBu\\fP\"\ntell \\fBinit\\fP to re-execute itself (preserving the state).\nNo re-examining of \\fI/etc/inittab\\fP file happens.\nRunlevel should be one of \\fBSs0123456\\fP\notherwise request would be silently ignored.\n.PP\n\\fBtelinit\\fP can tell \\fBinit\\fP how long it should wait\nbetween sending processes the \\fBSIGTERM\\fR and \\fBSIGKILL\\fR signals.\nThe default is 3 seconds,\nbut this can be changed with the \\fB\\-t\\fP option.\n.PP\n\\fBtelinit \\-e\\fP tells \\fBinit\\fP to change the environment\nfor processes it spawns.\nThe argument of \\fB\\-e\\fP is either of the form \\fIVAR\\fP=\\fIVAL\\fP\nwhich sets variable \\fIVAR\\fP to value \\fIVAL\\fP,\nor of the form \\fIVAR\\fP\n(without an equality sign)\nwhich unsets variable \\fIVAR\\fP.\n.PP\n\\fBtelinit\\fP can be invoked only by users with appropriate\nprivileges.\n.PP\nThe \\fBinit\\fP binary checks if it is \\fBinit\\fP or \\fBtelinit\\fP by looking\nat its \\fIprocess id\\fP; the real \\fBinit\\fP's process id is always \\fB1\\fP.\n\\&From this it follows that instead of calling \\fBtelinit\\fP one can also\njust use \\fBinit\\fP instead as a shortcut.\n.\\\"}}}\n.\\\"}}}\n.SH ENVIRONMENT\n\\fBInit\\fP sets the following environment variables for all its children:\n.IP \\fBPATH\\fP\n\\fI/bin:/usr/bin:/sbin:/usr/sbin\\fP\n.IP \\fBINIT_VERSION\\fP\nAs the name says.\nUseful to determine if a script runs directly from \\fBinit\\fP.\n.IP \\fBRUNLEVEL\\fP\nThe current system runlevel.\n.IP \\fBPREVLEVEL\\fP\nThe previous runlevel (useful after a runlevel switch).\n.IP \\fBCONSOLE\\fP\nThe system console.\nThis is really inherited from the kernel; however\nif it is not set \\fBinit\\fP will set it to \\fI/dev/console\\fP by default.\n.SH BOOTFLAGS\nIt is possible to pass a number of flags to \\fBinit\\fP from the\nboot monitor (e.g., LILO or GRUB).\n\\fBinit\\fP accepts the following flags:\n.TP 0.5i\n.B \\-s, S, single\nSingle user mode boot.\nIn this mode \\fI/etc/inittab\\fP is examined and\nthe bootup rc scripts are usually run before the single user mode shell is\nstarted.\n.\n.TP 0.5i\n.B 1\\(en5\nRunlevel to boot into.\n.\n.TP 0.5i\n.B \\-b, emergency\nBoot directly into a single user shell without running any\nother startup scripts.\n.\n.TP 0.5i\n.B \\-a, auto\nThe LILO boot loader adds the word \"auto\" to the command line if it\nbooted the kernel with the default command line (without user intervention).\nIf this is found \\fBinit\\fP sets the \"AUTOBOOT\" environment\nvariable to \"yes\".\nNote that you cannot use this for any security measures \\(en\nof course the user could specify \"auto\" or \\fB\\-a\\fR on the\ncommand line manually.\n.\n.TP 0.5i\n.BI \"\\-z \" xxx\nThe argument to \\fB\\-z\\fP is ignored.\nYou can use this to expand the command line a bit,\nso that it takes some more space on the stack.\n\\fBinit\\fP can then manipulate the command line\nso that \\fBps\\fP(1) shows the current runlevel.\n.\n.TP 0.5i\n.B \\-\\-version\nThis argument, when used on its own, displays the current version of \\fBinit\\fP\nto the console/stdout.\nIt is a quick way to determine which \\fBinit\\fP software and\nversion is being used.\nAfter the version information is displayed,\n\\fBinit\\fP immediately exits with a return code of zero.\n.\n.SH INTERFACE\n\\fBinit\\fP listens on a \\fIfifo\\fP as, \\fI/run/initctl\\fP, for messages.\n\\fBTelinit\\fP uses this to communicate with \\fBinit\\fP.\nThe interface is not very well documented or finished.\nThose interested should study the \\fIinitreq.h\\fP file in the \\fIsrc/\\fP\nsubdirectory of the \\fBinit\\fP source code tar archive.\n.SH SIGNALS\nInit reacts to several signals:\n.TP 0.5i\n.B SIGHUP\nHas the same effect as \\fBtelinit q\\fP.\n.\n.TP 0.5i\n.B SIGUSR1\nOn receipt of this signals,\n\\fBinit\\fP closes and re-opens its control fifo,\n\\fB/run/initctl\\fP.\nUseful for bootscripts when \\fI/dev\\fP is remounted.\n.TP 0.5i\n.B SIGUSR2\nWhen \\fBinit\\fP receives \\fBSIGUSR2\\fR,\n\\fBinit\\fP closes and leaves the control fifo,\n\\fB/run/initctl\\fP, closed.\nThis may be used to make sure \\fBinit\\fP is not holding open any files.\nHowever, it also prevents \\fBinit\\fP from switching runlevels.\nWhich means commands like shutdown no longer work.\nThe fifo can be re-opened by sending \\fBinit\\fP the \\fBSIGUSR1\\fR signal.\n.TP 0.5i\n.B SIGINT\nNormally the kernel sends this signal to \\fBinit\\fP when CTRL-ALT-DEL is\npressed.\nIt activates the \\fIctrlaltdel\\fP action.\n.TP 0.5i\n.B SIGWINCH\nThe kernel sends this signal when the \\fIKeyboardSignal\\fP key is hit.\nIt activates the \\fIkbrequest\\fP action.\n\\\"{{{  Conforming to\n.SH CONFORMING TO\n\\fBinit\\fP is compatible with the System V init.\nIt works closely together with the scripts in the directories\n\\fI/etc/init.d\\fP and \\fI/etc/rc{runlevel}.d\\fP.\nIf your system uses this convention,\nthere should be a \\fIREADME\\fP file in the directory \\fI/etc/init.d\\fP\nexplaining how these scripts work.\n.\\\"}}}\n.\\\"{{{  Files\n.SH FILES\n.nf\n/etc/inittab\n/etc/initscript\n/dev/console\n/var/run/utmp\n/var/log/wtmp\n/run/initctl\n.fi\n.\\\"}}}\n.\\\"{{{  Warnings\n.SH WARNINGS\n\\fBinit\\fP assumes that processes and descendants of processes\nremain in the same process group which was originally created\nfor them.  If the processes change their group, \\fBinit\\fP can't\nkill them and you may end up with two processes reading from one\nterminal line.\n.PP\nOn a Debian system, entering runlevel 1 causes all processes\nto be killed except for kernel threads and the script that does\nthe killing and other processes in its session.\nAs a consequence of this, it isn't safe to return from runlevel 1\nto a multi-user runlevel: daemons that were started in runlevel S\nand are needed for normal operation are no longer running.\nThe system should be rebooted.\n.\\\"}}}\n.\\\"{{{  Diagnostics\n.SH DIAGNOSTICS\nIf \\fBinit\\fP finds that it is continuously respawning an entry\nmore than 10 times in 2 minutes, it will assume that there is an error\nin the command string, generate an error message on the system console,\nand refuse to respawn this entry until either 5 minutes has elapsed or\nit receives a signal.  This prevents it from eating up system resources\nwhen someone makes a typographical error in the \\fI/etc/inittab\\fP file\nor the program for the entry is removed.\n.\\\"}}}\n.\\\"{{{  Author\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME , initial manual page by\n.MT u31b3hs@\\:pool\\:.informatik\\:.rwth-aachen\\:.de\nMichael Haardt\n.ME .\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR getty (1),\n.BR login (1),\n.BR sh (1),\n.BR runlevel (8),\n.BR shutdown (8),\n.BR kill (1),\n.BR initctl (5),\n.BR inittab (5),\n.BR initscript (5),\n.BR utmp (5)\n.\\\"}}}\n"
  },
  {
    "path": "man/initctl.5",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 2018 Jesse Smith\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH INITCTL 5 \"April 13, 2018\" \"sysvinit \" \"File Formats\"\n.SH NAME\ninitctl \\- /run/initctl is a named pipe which passes commands to SysV init\n.SH SYNOPSIS\n/run/initctl\n.SH DESCRIPTION\n\nThis document describes the communication pipe set up by SysV \\fBinit\\fR\nat \\fI/run/initctl\\fR. This named pipe allows programs with the proper\npermissions (typically programs run by root have read+write access to\nthe pipe) to send signals to the \\fBinit\\fR program (PID 1).\n\nThe \\fBinit\\fR manual page has, up until recently, simply stated\nthat people wishing to understand how to send messages to \\fBinit\\fR\nshould read the init program's source code, but that is not usually practical.\n\nMessages sent to the pipe to talk to \\fBinit\\fR must have a special format.\nThis format is defined as a C structure and the technical break-down\nis presented here:\n\n/*\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\nstruct 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\n\nLet's go through the init_request structure one line at a time. The\nfirst variable, the \"magic\" number must be of the value 0x03091969.\nThe \\fBinit\\fR program then knows that only programs with root access which send\nthis magic number are authorized to communicate with init.\n\nThe \\fIcmd\\fR variable is a value in the range of 0-8 (currently). This \\fIcmd\\fR\nvariable tells init what we want it to do. Here are the possible options:\n\n1 - Set the current runlevel, specified by the runlevel variable.\n\n2 - The power will fail soon (probably low battery) prepare to shutdown.\n\n3 - The power is failing, do shutdown immediately.\n\n4 - The power is okay, cancel shutdown.\n\n6 - Set an environment variable to a value to be specified in \n    the \\fIdata\\fR variable of this structure.\n\nOther \\fIcmd\\fR options may be added to \\fBinit\\fR later. For example, command values\n0, 5 and 7 are defined but currently not implemented.\n\nThe \\fIrunlevel\\fR variable will specify the runlevel to switch to (0-6).\n\nThe \\fIsleeptime\\fR variable is to be used when we want to tell \\fBinit\\fR to change\nthe time spent waiting between sending \\fBSIGTERM\\fR and \\fBSIGKILL\\fR during the\nshutdown process. Changing this at run time is not yet implemented.\n\nThe \\fIdata\\fR variable (in the union) can be used to pass misc data which init\nmight need to process our request. For example, when setting environment\nvariables.\n\nWhen setting an environment variable through \\fBinit\\fR's \\fI/run/initctl\\fR pipe,\nthe data variable should have the format \\fIVARIABLE\\fR=\\fIVALUE\\fR. The string\nshould be terminated with a NULL character.\n\n.SH EXAMPLES\n\nThe following C code example shows how to send a set environment variable\nrequest to the \\fBinit\\fR process using the \\fI/run/initctl\\fR pipe. This example\nis simplified and skips the error checking. A more complete example can be\nfound in the shutdown.c program's \\fBinit_setnv\\fR() function.\n\n.nf\nstruct init_request     request;           /* structure defined above */\nint                     fd;                /* file descriptor for pipe */\n\nmemset(&request, 0, sizeof(request));      /* initialize structure */\nrequest.magic = 0x03091969;                /* magic number required */\nrequest.cmd = 6;                           /* 6 is to set a variable */\nsprintf(request.data, \"VARIABLE=VALUE\");   /* set VAR to VALUE in init */\n\nif ((fd = open(INIT_FIFO, O_WRONLY)) >= 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.fi\n\n.sp\n.SH NOTES\nUsually the \\fI/run/initctl\\fR pipe would only be used by low-level programs to\nrequest a power-related shutdown or change the runlevel, like \\fBtelinit\\fR\nwould do. Most of the time there is no need to talk to \\fBinit\\fR directly, but\nthis gives us an extendable approach so \\fBinit\\fR can be taught how to learn\nmore commands.\n.PP\nThe commands passed through the \\fI/run/initctl\\fR pipe must be sent in a specific\nbinary format and be of a specific length. Larger data structures or ones\nnot using the proper format will be ignored. Typically, only root has the\nability to write to the initctl pipe for security reasons.\n.PP\nThe \\fI/run/initctl\\fR pipe can be closed by sending init (PID 1) the \\fBSIGUSR2\\fR\nsignal. This closes the pipe and leaves it closed. This may be useful\nfor making sure \\fBinit\\fR is not keeping any files open. However, when the\npipe is closed, \\fBinit\\fR no longer receives signals, such as those sent by\n\\fBshutdown\\fR(8) or \\fBtelinit\\fR(8). In other words if we close the pipe, \\fBinit\\fR cannot\nchange its runlevel directly. The pipe may be re-opened by sending \\fBinit\\fR (PID 1)\nthe \\fBSIGUSR1\\fR signal.\n.PP\nIf the \\fI/run/initctl\\fR pipe is closed then it may still be possible to bring\ndown the system using the \\fBshutdown\\fR(8) command's \\fB-n\\fR flag, but this is not\nalways clean and not recommended.\n\n.SH FILES\n/run/initctl\n/sbin/init\n\n.SH AUTHOR\n.MT jsmith@\\:resonatingmedia\\:.com \nJesse Smith\n.ME\n.SH \"SEE ALSO\"\n.BR init (8)\n"
  },
  {
    "path": "man/initscript.5",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2003 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH INITSCRIPT 5 \"July 10, 2003\" \"sysvinit \" \"File Formats\"\n.SH NAME\ninitscript \\- script that executes inittab commands\n.SH SYNOPSIS\n/bin/sh /etc/initscript id runlevels action process\n.SH DESCRIPTION\nWhen the shell script \\fI/etc/initscript\\fP is present, \\fBinit\\fP\nwill use it to execute the commands from \\fIinittab\\fP.\nThis script can be used to set things like \\fIulimit\\fP and\n\\fIumask\\fP default values for every process.\n.SH EXAMPLES\nThis is a sample initscript, which might be installed on your\nsystem as \\fI/etc/initscript.sample\\fP.\n.RS\n.sp\n.nf\n.ne 7\n\n#\n# initscript   Executed by init(8) for every program it\n#              wants to spawn like this:\n#\n#              /bin/sh /etc/initscript <id> <level> <action> <process>\n#\n\n  # Set umask to safe level, and enable core dumps.\n  umask 022\n  ulimit -c 2097151\n  PATH=/bin:/sbin:/usr/bin:/usr/sbin\n  export PATH\n\n  # Increase the hard file descriptor limit for all processes\n  # to 8192.  The soft limit is still 1024, but any unprivileged\n  # process can increase its soft limit up to the hard limit\n  # with \"ulimit -Sn xxx\" (needs a 2.2.13 or later Linux kernel).\n  ulimit -Hn 8192\n\n  # Execute the program.\n  eval exec \"$4\"\n\n.sp\n.RE\n.SH NOTES\nThis script is not meant as startup script for daemons or services.\nIt has nothing to do with a \\fIrc.local\\fP style script. It's just\na handler for things executed from \\fB/etc/inittab\\fP. Experimenting\nwith this can make your system un(re)bootable.\n.SH FILES\n/etc/inittab,\n/etc/initscript.\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.SH \"SEE ALSO\"\n.BR inittab (5),\n.BR init (8)\n"
  },
  {
    "path": "man/inittab.5",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2001 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH INITTAB 5 \"Dec 4, 2001\" \"sysvinit \" \"File Formats\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\ninittab \\- format of the inittab file used by the sysv-compatible init\nprocess\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\nThe \\fBinittab\\fP file describes which processes are started at bootup and\nduring normal operation (e.g.\\& /etc/init.d/boot, /etc/init.d/rc, gettys...).\n.BR init (8)\ndistinguishes multiple \\fIrunlevels\\fP, each of which can have its own set of\nprocesses that are started.  Valid runlevels are \\fB0\\fP\\-\\fB6\\fP plus\n\\fBA\\fP, \\fBB\\fP, and \\fBC\\fP for \\fBondemand\\fP entries.  An entry in the\n\\fBinittab\\fP file has the following format:\n.RS\n.sp\n\\fIid\\fP:\\fIrunlevels\\fP:\\fIaction\\fP:\\fIprocess\\fP\n.sp\n.RE\nLines beginning with `#' are ignored.\n.\\\"{{{  id\n.IP \\fIid\\fP\nis a unique sequence of 1-4 characters which identifies an entry in\n.B inittab \n(for versions of sysvinit compiled with the \\fIold\\fP libc5 (< 5.2.18) or\na.out libraries the limit is 2 characters).\n.sp\nNote: traditionally, for getty and other login processes, the value of the\n\\fIid\\fP field is kept the same as the suffix of the corresponding tty, e.g.\\&\n\\fB1\\fP for \\fBtty1\\fP. Some ancient login accounting programs might\nexpect this, though I can't think of any.\n.\\\"}}}\n.\\\"{{{  runlevels\n.IP \\fIrunlevels\\fP\nlists the runlevels for which the specified action should be taken.\n.\\\"}}}\n.\\\"{{{  action\n.IP \\fIaction\\fP\ndescribes which action should be taken.\n.\\\"}}}\n.\\\"{{{  process\n.IP \\fIprocess\\fP\nspecifies the process to be executed.  If the process field starts with\na `+' character, \n.B init \nwill not do utmp and wtmp accounting for that process.  This is needed for \ngettys that insist on doing their own utmp/wtmp housekeeping.  This is also \na historic bug. The length of this field is limited to 253 characters. Anything\nbeyond 253 will result in a log warning and the process command line being\nskipped/ignored.\n\nPlease note that including certain characters in the process field will result\nin\n.B init\nattempting to launch a shell to interpret the command contained in the process field. \nThe characters which will trigger a shell are: \n.B ~`!$^&*()=|\\{}[];\\\n\"'<>?\n\nOn systems which do not have a shell to be launched or which do not wish to\nuse a shell to interpret the process field, the process field can be prefixed\nwith the @ symbol. The @ will be ignored and everything followed will be treated\nas a command to be launched, literally, by the\n.B init\nservice.\n\nIn cases where both a + and @ sign are to be used (to turn off logging and shell\ninterpretation), place the + sign before the @ symbol. Both flags will be handled\nand then everything following the @ will be handled by\n.B init\n\n.\\\"}}}\n.PP\nThe \\fIrunlevels\\fP field may contain multiple characters for different\nrunlevels.  For example, \\fB123\\fP specifies that the process should be \nstarted in runlevels 1, 2, and 3.\nThe \\fIrunlevels\\fP for \\fBondemand\\fP entries may contain an \\fBA\\fP,\n\\fBB\\fP, or \\fBC\\fP.  The \\fIrunlevels\\fP field of \\fBsysinit\\fP,\n\\fBboot\\fP, and \\fBbootwait\\fP entries are ignored.\n.PP\nWhen the system runlevel is changed, any running processes that are not\nspecified for the new runlevel are killed, first with \\s-2SIGTERM\\s0,\nthen with \\s-2SIGKILL\\s0.\n.PP\nValid actions for the \\fIaction\\fP field are:\n.\\\"{{{  respawn\n.IP \\fBrespawn\\fP\nThe process will be restarted whenever it terminates (e.g.\\& getty).\n.\\\"}}}\n.\\\"{{{  wait\n.IP \\fBwait\\fP\nThe process will be started once when the specified runlevel is entered and \n.B init \nwill wait for its termination.\n.\\\"}}}\n.\\\"{{{  once\n.IP \\fBonce\\fP\nThe process will be executed once when the specified runlevel is\nentered.\n.\\\"}}}\n.\\\"{{{  boot\n.IP \\fBboot\\fP\nThe process will be executed during system boot.  The \\fIrunlevels\\fP\nfield is ignored.\n.\\\"}}}\n.\\\"{{{  bootwait\n.IP \\fBbootwait\\fP\nThe process will be executed during system boot, while \n.B init \nwaits for its termination (e.g.\\& /etc/rc).  \nThe \\fIrunlevels\\fP field is ignored.\n.\\\"}}}\n.\\\"{{{  off\n.IP \\fBoff\\fP\nThis does nothing.\n.\\\"}}}\n.\\\"{{{  ondemand\n.IP \\fBondemand\\fP\nA process marked with an \\fBondemand\\fP runlevel will be executed\nwhenever the specified \\fBondemand\\fP runlevel is called.  However, no\nrunlevel change will occur (\\fBondemand\\fP runlevels are `a', `b',\nand `c').\n.\\\"}}}\n.\\\"{{{  initdefault\n.IP \\fBinitdefault\\fP\nAn \\fBinitdefault\\fP entry specifies the runlevel which should be\nentered after system boot.  If none exists, \n.B init\nwill ask for a runlevel on the console. The \\fIprocess\\fP field is ignored.\n.\\\"}}}\n.\\\"{{{  sysinit\n.IP \\fBsysinit\\fP\nThe process will be executed during system boot. It will be\nexecuted before any \\fBboot\\fP or \\fB bootwait\\fP entries.\nThe \\fIrunlevels\\fP field is ignored.\n.\\\"}}}\n.\\\"{{{  powerwait\n.IP \\fBpowerwait\\fP\nThe process will be executed when the power goes down. \\fBinit\\fR is usually\ninformed about this by a process talking to a UPS connected to the computer.\n\\fBinit\\fP will wait for the process to finish before continuing.\n.\\\"}}}\n.\\\"{{{  powerfail\n.IP \\fBpowerfail\\fP\nAs for \\fBpowerwait\\fP, except that \\fBinit\\fP does not wait for the process's\ncompletion.\n.\\\"}}}\n.\\\"{{{  powerokwait\n.IP \\fBpowerokwait\\fP\nThis process will be executed as soon as \\fBinit\\fP is informed that the\npower has been restored.\n.\\\"}}}\n.\\\"{{{  powerfailnow\n.IP \\fBpowerfailnow\\fP\nThis process will be executed when \\fBinit\\fP is told that the battery of\nthe external UPS is almost empty and the power is failing (provided that the\nexternal UPS and the monitoring process are able to detect this condition).\n.\\\"}}}\n.\\\"{{{  ctrlaltdel\n.IP \\fBctrlaltdel\\fP\nThe process will be executed when \\fBinit\\fP receives the \\fBSIGINT\\fP signal.\nThis means that someone on the system console has pressed the\n\\fBCTRL\\-ALT\\-DEL\\fP key combination. Typically one wants to execute some\nsort of \\fBshutdown\\fP either to get into single\\-user level or to\nreboot the machine.\n.\\\"}}}\n.\\\"{{{  kbrequest\n.IP \\fBkbrequest\\fP\nThe process will be executed when \\fBinit\\fP receives a signal from the\nkeyboard handler that a special key combination was pressed on the\nconsole keyboard.\n.sp\nThe documentation for this function is not complete yet; more documentation\ncan be found in the kbd-x.xx packages (most recent was kbd-0.94 at\nthe time of this writing). Basically you want to map some keyboard\ncombination to the \"KeyboardSignal\" action. For example, to map Alt-Uparrow\nfor this purpose use the following in your keymaps file:\n.RS\n.sp\nalt keycode 103 = KeyboardSignal\n.sp\n.RE\n.\\\"}}}\n.\\\"}}}\n.\\\"{{{  Examples\n.SH EXAMPLES\nThis is an example of a inittab which resembles the old Linux inittab:\n.RS\n.sp\n.nf\n.ne 7\n# inittab for linux\nid:1:initdefault:\nrc::bootwait:/etc/rc\n1:1:respawn:/etc/getty 9600 tty1\n2:1:respawn:/etc/getty 9600 tty2\n3:1:respawn:/etc/getty 9600 tty3\n4:1:respawn:/etc/getty 9600 tty4\n.fi\n.sp\n.RE\nThis inittab file executes \\fI/etc/rc\\fP during boot and starts gettys\non tty1\\-tty4.\n.PP\nA more elaborate \\fBinittab\\fP with different runlevels (see the comments\ninside):\n.RS\n.sp\n.nf\n.ne 19\n# Level to run in\nid:2:initdefault:\n\n# Boot-time system configuration/initialization script.\nsi::sysinit:/etc/init.d/rcS\n\n# What to do in single-user mode.\n~:S:wait:/sbin/sulogin\n\n# /etc/init.d executes the S and K scripts upon change\n# of runlevel.\n#\n# Runlevel 0 is halt.\n# Runlevel 1 is single-user.\n# Runlevels 2-5 are multi-user.\n# Runlevel 6 is reboot.\n\nl0:0:wait:/etc/init.d/rc 0\nl1:1:wait:/etc/init.d/rc 1\nl2:2:wait:/etc/init.d/rc 2\nl3:3:wait:/etc/init.d/rc 3\nl4:4:wait:/etc/init.d/rc 4\nl5:5:wait:/etc/init.d/rc 5\nl6:6:wait:/etc/init.d/rc 6\n\n# What to do at the \"3 finger salute\".\nca::ctrlaltdel:/sbin/shutdown -t1 -h now\n\n# Runlevel 2,3: getty on virtual consoles\n# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\n1:23:respawn:/sbin/getty tty1 VC linux\n2:23:respawn:/sbin/getty tty2 VC linux\n3:23:respawn:/sbin/getty tty3 VC linux\n4:23:respawn:/sbin/getty tty4 VC linux\nS0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\nS1:3:respawn:/sbin/mgetty -x0 -D ttyS1\n\n.fi\n.sp\n.RE\n.\\\"}}}\n.\\\"{{{  Files\n.SH FILES\n/etc/inittab\n.\\\"}}}\n.\\\"{{{  Author\n.SH AUTHOR\n\\fBinit\\fP was written by\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME .\nThis manual page was written by\n.MT lederer@\\:francium\\:.informatik\\:.uni-bonn\\:.de\nSebastian Lederer\n.ME\nand modified by \n.MT u31b3hs@\\:pool\\:.informatik\\:.rwth-aachen\\:.de\nMichael Haardt\n.ME .\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR init (8),\n.BR telinit (8)\n.\\\"}}}\n"
  },
  {
    "path": "man/killall5.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2003 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH KILLALL5 8 \"04 Nov 2003\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.SH NAME\nkillall5 - send a signal to all processes\n.SH SYNOPSIS\n.B killall5\n.B \\-signalnumber\n.RB [ \\-o\n.IR omitpid [, omitpid ...]]\n.RB [ \\-o\n.IR omitpid [, omitpid ...]...]\n.SH DESCRIPTION\n.B killall5\nis the SystemV \\fBkillall\\fR command. It sends a signal to all processes except\nkernel threads and the processes in its own session, so it won't kill\nthe shell that is running the script it was called from. Its primary\n(only) use is in the \\fBrc\\fP scripts found in the \\fI/etc/init.d\\fP directory.\n.SH OPTIONS\n.IP \"\\fB-o\\fP \\fIomitpid\\fP\"\nTells \\fBkillall5\\fP to omit processes with that process id.\n.SH NOTES\n\\fBkillall5\\fP can also be invoked as \\fBpidof\\fP(8), which is simply a\n(symbolic) link to the \\fBkillall5\\fP program.\n.SH EXIT STATUS\nThe program return zero if it killed processes.  It returns 2 if no\nprocess were killed, and 1 if it was unable to find any processes\n(\\fI/proc/\\fP is missing).\n.SH SEE ALSO\n.BR halt (8),\n.BR reboot (8),\n.BR pidof (8)\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n"
  },
  {
    "path": "man/last.1",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2004 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH LAST, LASTB 1 \"Jul 31, 2004\" \"sysvinit \" \"User Commands\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\nlast, lastb \\- show listing of last logged in users\n.\\\"}}}\n.\\\"{{{  Synopsis\n.SH SYNOPSIS\n.B last\n.RB [ \\-R ]\n.RB [ \\-\\fInum\\fP ]\n[\\-\\fBn\\fP \\fInum\\/\\fP]\n.RB [ \\-adFiowx ]\n[\\-\\fBf\\fP \\fIfile\\/\\fP]\n[\\-\\fBt\\fP \\fIYYYYMMDDHHMMSS\\/\\fP]\n.RI [ name... ]\n.RI [ tty... ]\n.br\n.B lastb\n.RB [ \\-R ]\n.RB [ \\-\\fInum\\fP ]\n[\\-\\fBn\\fP \\fInum\\/\\fP]\n[\\-\\fBf\\fP \\fIfile\\/\\fP]\n.RB [ \\-adFiowx ]\n.RI [ name... ]\n.RI [ tty... ]\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\n.B Last\nsearches back through the file \\fB/var/log/wtmp\\fP (or the file\ndesignated by the \\fB\\-f\\fP flag) and displays a list of all\nusers logged in (and out) since that file was created.  Names of users\nand tty's can be given, in which case \\fBlast\\fP will show only those entries\nmatching the arguments.  Names of ttys can be abbreviated, thus \\fBlast\n0\\fP is the same as \\fBlast tty0\\fP.  \n.PP\nWhen \\fBlast\\fP catches a \\fBSIGINT\\fP signal (generated by the interrupt key,\nusually control-C) or a \\fBSIGQUIT\\fP signal (generated by the quit key, \nusually control-\\e), \\fBlast\\fP will show how far it has searched through the \nfile; in the case of the \\fBSIGINT\\fP signal \\fBlast\\fP will then terminate.\n.PP\nThe pseudo user \\fBreboot\\fP logs in each time the system is rebooted.\nThus \\fBlast reboot\\fP will show a log of all reboots since the log file\nwas created.\n.PP\n\\fBlastb\\fP is the same as \\fBlast\\fP, except that by default it shows a log\nof the file \\fB/var/log/btmp\\fP, which contains all the bad login attempts.\n.\\\"}}}\n.\\\"{{{  Options\n.SH OPTIONS\n.IP \"\\fB\\-f\\fP \\fIfile\\fP\"\nTells \\fBlast\\fP to use a specific file instead of \\fI/var/log/wtmp\\fP.\n.IP \\fB\\-\\fP\\fInum\\fP\nThis is a count telling \\fBlast\\fP how many lines to show.\n.IP \"\\fB\\-n\\fP \\fInum\\fP\"\nThe same.\n.IP \"\\fB\\-t\\fP \\fIYYYYMMDDHHMMSS\\fP\"\nDisplay the state of logins as of the specified time.  This is\nuseful, e.g., to determine easily who was logged in at a particular\ntime -- specify that time with \\fB\\-t\\fP and look for \"still logged\nin\".\n.IP \\fB\\-R\\fP\nSuppresses the display of the hostname field.\n.IP \\fB\\-a\\fP\nDisplay the hostname in the last column. Useful in combination\nwith the next flag.\n.IP \\fB\\-d\\fP\nFor non-local logins, Linux stores not only the host name of the remote\nhost but its IP number as well. This option translates the IP number\nback into a hostname.\n.IP \\fB\\-F\\fP\nPrint full login and logout times and dates.\n.IP \\fB\\-i\\fP\nThis option is like \\fB-d\\fP in that it displays the IP number of the remote\nhost, but it displays the IP number in numbers-and-dots notation.\n.IP \\fB\\-l\\fP\nThis option allows the display of usernames longer than 8 characters.\nThis may mess up formatting in some programs and make the output wider than\nthe standard 80 characters.\n.IP \\fB\\-o\\fP\nRead an old-type wtmp file (written by linux-libc5 applications).\n.IP \\fB\\-w\\fP\nDisplay full user and domain names in the output.\n.IP \\fB\\-x\\fP\nDisplay the system shutdown entries and run level changes.\n.\\\"}}}\n.SH NOTES\nThe files \\fIwtmp\\fP and \\fIbtmp\\fP might not be found. The system only\nlogs information in these files if they are present. This is a local\nconfiguration issue. If you want the files to be used, they can be\ncreated with a simple \\fBtouch\\fP(1) command (for example, \n\\fBtouch /var/log/wtmp\\fP).\n.\\\"{{{  Files\n.SH FILES\n/var/log/wtmp\n.br\n/var/log/btmp\n.\\\"}}}\n.\\\"{{{  Author\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR shutdown (8),\n.BR login (1),\n.BR init (8)\n.\\\"}}}\n"
  },
  {
    "path": "man/lastb.1",
    "content": ".so man1/last.1\n"
  },
  {
    "path": "man/logsave.8",
    "content": ".\\\" -*- nroff -*-\n.\\\" Copyright 2003 by Theodore Ts'o.  All Rights Reserved.\n.\\\" This file may be copied under the terms of the GNU Public License.\n.\\\"\n.TH LOGSAVE 8 \"\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.SH NAME\nlogsave \\- save the output of a command in a logfile\n.SH SYNOPSIS\n.B logsave\n[\n.B \\-asv\n]\n.I logfile cmd_prog [ ... ]\n.SH DESCRIPTION\nThe\n.B logsave\nprogram will execute\n.I cmd_prog\nwith the specified argument(s), and save a copy of its output to\n.IR logfile .\nIf the containing directory for\n.I logfile\ndoes not exist,\n.B logsave\nwill accumulate the output in memory until it can be written out.\nA copy of the output will also be written to standard output.\n.PP\nIf\n.I cmd_prog\nis a single hyphen ('-'), then instead of executing a program,\n.B logsave\nwill take its input from standard input and save it in\n.IR logfile .\n.PP\n.B logsave\nis useful for saving the output of initial boot scripts\nuntil the \\fI/var\\fP partition is mounted, so the output can be written to\n\\fI/var/log\\fP.\n.SH OPTIONS\n.TP\n.B \\-a\nThis option will cause the output to be appended to\n.IR logfile ,\ninstead of replacing its current contents.\n.TP\n.B \\-s\nThis option will cause\n.B logsave\nto skip writing to the log file text which is bracketed with a control-A\n(ASCII 001 or Start of Header) and control-B (ASCII 002 or Start of\nText).  This allows progress bar information to be visible to the user\non the console, while not being written to the log file.\n.TP\n.B \\-v\nThis option will make\n.B logsave\nto be more verbose in its output to the user.\n.SH AUTHOR\n.MT tytso@mit\\:.edu\nTheodore Ts'o\n.ME\n.SH SEE ALSO\n.BR fsck (8)\n"
  },
  {
    "path": "man/mesg.1",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2001 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH MESG 1 \"Feb 26, 2001\" \"sysvinit \" \"User Commands\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\nmesg \\- control write access to your terminal\n.\\\"}}}\n.\\\"{{{  Synopsis\n.SH SYNOPSIS\n.B mesg\n.RB [ y | n ]\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\n.B mesg\ncontrols the access to your terminal by others.  It's typically used to\nallow or disallow other users to write to your terminal (see \\fBwrite\\fP(1)).\n.\\\"}}}\n.\\\"{{{  Options\n.SH OPTIONS\n.IP \\fBy\\fP\nAllow write access to your terminal.\n.IP \\fBn\\fP\nDisallow write access to your terminal.\n.PP\nIf no option is given, \\fBmesg\\fP prints out the current access state of your\nterminal.\n.\\\"}}}\n.\\\"{{{  Notes\n.SH NOTES\n\\fBmesg\\fP assumes that its standard input is connected to your\nterminal. That also means that if you are logged in multiple times,\nyou can get/set the mesg status of other sessions by using redirection.\nFor example \"mesg n < /dev/pts/46\".\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR talk (1),\n.BR write (1),\n.BR wall (1)\n.\\\"}}}\n"
  },
  {
    "path": "man/mountpoint.1",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2004 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH MOUNTPOINT 1 \"Mar 15, 2004\" \"sysvinit \" \"User Commands\"\n.SH NAME\nmountpoint \\- see if a directory is a mountpoint\n.SH SYNOPSIS\n.B mountpoint\n.RB [ \\-q ]\n.RB [ \\-d ]\n.I /path/to/directory\n.br\n.B mountpoint\n.B \\-x\n.I /dev/device\n.SH DESCRIPTION\n\\fBmountpoint\\fP checks if the directory is a mountpoint.\n\n.SH OPTIONS\n.IP \\fB\\-q\\fP\nBe quiet - don't print anything.\n.IP \\fB\\-d\\fP\nPrint major/minor device number of the filesystem on stdout.\n.IP \\fB\\-p\\fP\nCheck Linux's \\fI/proc/mounts\\fP file to try to detect circular mount points.\n.IP \\fB\\-x\\fP\nPrint major/minor device number of the blockdevice on stdout.\n.SH EXIT STATUS\nZero if the directory is a mountpoint, non-zero if not.\n.SH NOTES\nSymbolic links are not followed, except when the \\fB-x\\fP option is\nused. To force following symlinks, add a trailing slash to the\npath of the directory.\n.PP\nThe name of the command is misleading when the \\fB-x\\fP option is used,\nbut the option is useful for comparing if a directory and a device\nmatch up, and there is no other command that can print the info easily.\n.PP\nThe mountpoint command fails when a directory is binded to one of its grandparents.\nFor example, if /a/b/c/d is a mount point for /a/b then mountpoint will report\n/a/b/c/d is not a valid mount point. This is because both the original directory and\nits new mount point share the same inode and device number.\n.PP\nThe circular mount problem can be worked around on Linux systems by using \nthe\\fB-p\\fP flag to check the \\fI/proc/mounts\\fP file for references to the circular mount bind.\nWhen using the \\fB-p\\fP flag, make sure to specify the full path (ie \\fI/home/user/mp\\fP and\nnot just \\fImp\\fP). Also, \\fBmountpoint\\fP may still fail if there are spaces in\nthe mount point's path, even when using the \\fB-p\\fP flag because of the way\n\\fB/proc/mounts\\fP mangles the spaces in the path name. Of course, if the\nadmin is using circular mount points with spaces in the name, there\nare bigger concerns.\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.SH \"SEE ALSO\"\n.BR stat (1)\n"
  },
  {
    "path": "man/pidof.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH PIDOF 8 \"01 Sep 1998\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.SH NAME\npidof \\- find the process ID of a running program\n.SH SYNOPSIS\n.B pidof\n.RB [ \\-s ]\n.RB [ \\-c ]\n.RB [ \\-n ]\n.RB [ \\-x ]\n.RB [ \\-z ]\n.RB [ \\-o\n.IR omitpid [ \\fB,\\fPomitpid \"...\\&]]\"\n.RB [ \\-o\n.IR omitpid [ \\fB,\\fPomitpid ...]...\\&]\n.RB [ \\-d\n.IR sep ]\n.I program\n.RI [ program \"...]\"\n.SH DESCRIPTION\n.B pidof\nfinds the process id's (PIDs) of the named programs.\nIt prints those id's on the standard output.\nThis program is on some systems used in run-level change scripts,\nespecially when the system has a \\fISystem-V\\fP like \\fIrc\\fP structure.\nIn that case these scripts are located in \\fI/etc/rc?.d\\fP,\nwhere ? is the runlevel.\nIf the system has a \\fBstart-stop-daemon\\fP(8) program\nthat should be used instead.\n.SH OPTIONS\n.IP \\fB\\-s\\fP\nSingle shot - this instructs the program to only return one \\fIpid\\fP.\n.IP \\fB\\-c\\fP\nOnly return process PIDs that are running with the same root directory.\nThis option is ignored for non-root users, as they will be unable to check\nthe current root directory of processes they do not own.\n.IP \\fB\\-n\\fP\nAvoid\n.BR stat (2)\nsystem function call on all binaries which are located on network\nbased file systems like\n.BR NFS .\nInstead of using this option the variable\n.B PIDOF_NETFS\nmay be set and exported.\n.IP \\fB\\-q\\fP\nDo not display matched PIDs to standard out.\nSimply exit with a status of true or false to indicate whether a matching\nPID was found.\n.IP \\fB\\-x\\fP\nScripts too - this causes the program to also return process id's of\nshells running the named scripts.\n.IP \\fB\\-z\\fP\nTry to detect processes which are stuck in zombie (Z) status.\nUsually these processes are skipped\nas trying to deal with them can cause pidof or related tools to hang.\nNote: In the past pidof would ignore processes in the uninterruptable state\n(D),\nunless the \\fB\\-z\\fP flag was specified.\nThis is no longer the case.\nThe \\fBpidof\\fP program will find and report processes in the D state\nwhether \\fB\\-z\\fP is specified or not.\n.IP \"\\-d \\fIsep\\fP\"\nTells \\fIpidof\\fP to use \\fIsep\\fP as an output separator\nif more than one PID is shown.\nThe default separator is a space.\n.IP \"\\-o \\fIomitpid\\fP\"\nTells \\fIpidof\\fP to omit processes with that process id.\nThe special pid \\fB%PPID\\fP can be used to name the parent process of the\n\\fBpidof\\fP program,\nin other words the calling shell or shell script.\n.SH \"EXIT STATUS\"\n.TP\n.B 0\nAt least one program was found with the requested name.\n.TP\n.B 1\nNo program was found with the requested name.\n.SH NOTES\n\\fIpidof\\fP is actually the same program as \\fBkillall5\\fP(8);\nthe program behaves according to the name under which it is called.\n.PP\nWhen \\fBpidof\\fP is invoked with a full pathname to the program it\nshould find the pid of,\nit is reasonably safe.\nOtherwise it is possible\nthat it returns PIDs of running programs that happen to have the same name\nas the program you're after but are actually other programs.\nNote that the executable name of running processes is calculated with\n.BR readlink (2),\nso symbolic links to executables will also match.\n.PP\nZombie processes or processes in disk sleep\n(states Z and D, respectively)\nare ignored,\nas attempts to access the stats of these will sometimes fail.\nThe \\fB\\-z\\fP flag (see above) tells \\fBpidof\\fP to try to detect these\nsleeping and zombie processes,\nat the risk of failing or hanging.\n\n.SH SEE ALSO\n.BR shutdown (8),\n.BR init (8),\n.BR halt (8),\n.BR reboot (8),\n.BR killall5 (8)\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n"
  },
  {
    "path": "man/po/de.po",
    "content": "# German translation of the sysvinit man pages.\n# Martin Okrslar <okrslar@informatik.uni-muenchen.de>, 2000.\n# Martin Schulze <joey@infodrom.org>, 2001.\n# Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, 2010.\n# Chris Leick <c.leick@vollbio.de>, 2010.\n# Helge Kreutzmann <debian@helgefjell.de>, 2016, 2018-2021.\n# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2018-2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"POT-Creation-Date: 2021-12-27 14:19+0100\\n\"\n\"PO-Revision-Date: 2021-12-27 22:14+0100\\n\"\n\"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\\n\"\n\"Language-Team: German <debian-l10n-german@lists.debian.org>\\n\"\n\"Language: de\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Lokalize 21.12.0\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21. Juli 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, no-wrap\nmsgid \"sysvinit @VERSION@\"\nmsgstr \"sysvinit @VERSION@\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"Linux-Systemverwaltungshandbuch\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"BEZEICHNUNG\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"bootlogd - Boot-Meldungen aufzeichnen\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"ÜBERSICHT\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< Protokolldatei >] [I< >B<-p>I< PID-Datei >]\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"BESCHREIBUNG\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\"B<bootlogd> wird im Hintergrund ausgeführt und kopiert alle an das Gerät I</\"\n\"dev/console> gesendeten Zeichenketten in eine Protokolldatei. Falls auf die \"\n\"I<Ptotokolldatei> nicht zugegriffen werden kann, werden die Meldungen im \"\n\"Speicher behalten, bis der Zugriff wieder möglich ist.\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"OPTIONEN\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\"gibt Escape-Zeichen in die Boot-Protokolldatei aus. Dadurch wird die \"\n\"Filterung der Escape-Zeichen deaktiviert und Werkzeugen wie GNU B<less>(1) \"\n\"ermöglicht, diese zu sehen und Farb-Steuerzeichen zu verwenden (also das \"\n\"Protokoll farbig anzuzeigen).\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\"versucht, auch dann in die Protokolldatei zu schreiben, wenn diese noch \"\n\"nicht existiert. Ohne diese Option wartet B<bootlogd>, bis die \"\n\"Protokolldatei erscheint, bevor ein Schreibversuch unternommen wird. Dieses \"\n\"Verhalten hindert B<bootlogd> daran, Protokolldateien unterhalb von \"\n\"Einhängepunkten zu erstellen.\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\"Eine vorhandene I<Protokolldatei> wird umbenannt, indem dem Namen eine Tilde \"\n\"angehängt wird (I<Protokolldatei~>), außer wenn die I<Protokolldatei~> \"\n\"bereits vorhanden ist.\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\"stellt sicher, dass die Daten tatsächlich in die Datei geschrieben werden, \"\n\"indem nach jeder Zeile B<fdatasync>(3) aufgerufen wird. Dadurch wird ein \"\n\"parallel laufender B<fsck>(8)-Prozess verlangsamt.\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"zeigt die Version an.\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, no-wrap\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-l> I<Protokolldatei>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\"speichert in die angegebene Protokolldatei. Die Vorgabe ist I</var/log/boot>.\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, no-wrap\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-p> I<PID-Datei>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\"speichert die Prozesskennung (PID) in dieser Datei. Standardmäßig wird keine \"\n\"PID-Datei gespeichert.\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"ANMERKUNGEN\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"FEHLER\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:255 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"AUTOR\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:270 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"SIEHE AUCH\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"Mai 2006\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"fstab-decode - einen Befehl mit fstab-kodierten Argumenten ausführen\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"B<fstab-decode> I<BEFEHL> [I<ARGUMENT>] …\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"EXIT-STATUS\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\"B<fstab-decode> beendet sich mit dem Status 127, falls der I<BEFEHL> nicht \"\n\"ausgeführt werden kann. Anderenfalls beendet es sich mit dem vom I<BEFEHL> \"\n\"zurückgegebenen Status.\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:184\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"BEISPIELE\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\"Das folgende Beispiel liest die Datei I<fstab>, findet alle Vorkommen von \"\n\"VFAT-Dateisystemen und gibt deren Einhängepunkte aus (das 2. Argument in der \"\n\"I<fstab>-Datei). B<fstab-decode> führt dann das angegebene Programm aus \"\n\"(B<umount>(8)) und übergibt an dieses eine Liste der VFAT-Einhängepunkte. \"\n\"Dadurch werden alle VFAT-Partitionen ausgehängt.\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"6. November 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"halt, poweroff, reboot - das System anhalten\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\"Der Rest dieser Handbuchseite beschreibt das Verhalten in den Runlevels 0 \"\n\"und 6, also wenn die Herunterfahr-Skripte des Systems laufen.\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\"führt keinen Systemhalt oder Neustart tatsächlich aus, sondern schreibt nur \"\n\"den Wtmp-Herunterfahreintrag (in die Datei I</var/log/wtmp>).\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"schreibt keinen Wtmp-Herunterfahreintrag.\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"erzwingt Systemhalt oder Neustart und ruft B<shutdown>(8) nicht auf.\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\"versetzt alle Festplattenlaufwerke im System direkt vor Systemhalt oder \"\n\"Ausschalten in den Standby-Modus.\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\"schaltet beim Anhalten des Systems die Energieversorgung ab. Dies ist die \"\n\"Vorgabe, wenn B<halt> als B<poweroff> aufgerufen wird.\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"DIAGNOSE\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\"Falls Sie nicht der Superuser sind, erhalten Sie die Meldung »must be \"\n\"superuser«.\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\"Unter älteren Versionen von B<sysvinit> sollten B<reboot> und B<halt> \"\n\"niemals direkt aufgerufen werden. Ab der Version 2.74 rufen B<halt> und \"\n\"B<reboot> den Befehl B<shutdown>(8) auf, falls sich das System nicht im \"\n\"Runlevel 0 oder 6 befindet. Falls B<halt> oder B<reboot> den aktuellen \"\n\"Runlevel nicht ermitteln können (beispielsweise wenn I</var/run/utmp> nicht \"\n\"korrekt initialisiert wurde und I</var/run/runlevel> nicht existiert), \"\n\"bedeutet das, dass B<shutdown> aufgerufen wird, was möglicherweise nicht das \"\n\"ist, was Sie wollen. Verwenden Sie den Schalter B<-f>, wenn Sie einen harten \"\n\"Systemhalt oder Neustart ausführen wollen.\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\"Der Schalter B<-h> versetzt alle Festplatten direkt vor dem Systemhalt oder \"\n\"Ausschalten in den Standby-Modus. Bislang ist das nur für IDE-Laufwerke \"\n\"implemetiert. Ein Nebeneffekt des Versetzens in den Standby-Modus ist, dass \"\n\"der Schreib-Cache des Laufwerks geleert wird. Das ist für IDE-Laufwerke \"\n\"wichtig, da der Kernel selbst den Schreib-Cache vor dem Ausschalten nicht \"\n\"leert.\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\"Das Programm B<halt> findet alle IDE-Laufwerke mit Hilfe von I</proc/ide/\"\n\"hd*>, was bedeutet, dass I</proc> beim Aufruf von B<halt> oder B<poweroff> \"\n\"eingehängt sein muss. Anderenfalls wird der Schalter B<-h> nichts bewirken.\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29. Juli 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"init, telinit - Initialisierung der Prozesssteuerung\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [ B<-t> I<SEKUNDEN> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<WERT>] ]\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\"B<init> ist der Elternprozess aller Prozesse. Seine Hauptaufgabe besteht \"\n\"darin, Prozesse aus einem Skript in der Datei I</etc/inittab> zu erzeugen \"\n\"(siehe auch B<inittab>(5)). Diese Datei hat normalerweise Einträge, die \"\n\"B<init> dazu veranlassen auf jeder Leitung B<getty>s zu erzeugen, auf der \"\n\"sich ein Benutzer einloggen kann. Er steuert auch alle unabhängigen \"\n\"Prozesse, die von einem bestimmten System benötigt werden.\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"RUNLEVEL\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\"Ein I<Runlevel> ist eine Software-Konfiguration des Systems, der es nur \"\n\"einer ausgewählten Gruppe von Prozessen erlaubt, ausgeführt zu werden. Die \"\n\"Prozesse, die von B<init> für jeden dieser Runlevel erzeugt werden, sind in \"\n\"der Datei I</etc/inittab> definiert. B<Init> kann in einem von acht \"\n\"Runleveln sein: B<0-6> und B<S> (auch B<s>). B<Init> wechselt den Runlevel, \"\n\"wenn ein privilegierter Benutzer das Programm B</sbin/telinit> startet, das \"\n\"B<init> passende Signale sendet, die ihm mitteilen, in welchen Runlevel es \"\n\"wechseln soll.\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\"Die Runlevel B<S>, B<0>, B<1> und B<6> sind reserviert. Der Runlevel S wird \"\n\"benutzt, um das System beim Start zu initialisieren. Wenn Runlevel S (beim \"\n\"Start) oder Runlevel 1 (umschalten von einem Mehrbenutzer-Runlevel) \"\n\"gestartet wird, wechselt das System in den »Einzelbenutzermodus«, nach dem \"\n\"der aktuelle Runlevel S ist. Runlevel 0 wird benutzt, um das System zu \"\n\"stoppen, Runlevel 6 startet das System neu.\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\"Nach dem Starten durch S tritt das System automatisch in die Mehrbenutzer-\"\n\"Runlevel 2 bis 5 ein, falls es dort kein Problem gibt, das vom Administrator \"\n\"im Einzelbenutzermodus behoben werden muss. Normalerweise führt der \"\n\"Administrator nach Eintreten in den Einzelbenutzermodus Wartungsarbeiten \"\n\"durch und startet dann das System neu.\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\"Lesen Sie die Handbuchseiten von B<shutdown>(8) und B<inittab>(5), um \"\n\"weitere Informationen zu erhalten.\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\"Die Runlevel 7-9 sind ebenfalls gültig, wenngleich nicht wirklich \"\n\"dokumentiert. Dies ist deshalb so, weil »traditionelle« Unix-Varianten sie \"\n\"nicht benutzen.\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\"Die Runlevel I<S> und I<s> sind identisch. Intern sind sie Aliase für den \"\n\"gleichen Runlevel.\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"SYSTEMSTART\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\"Nachdem B<init> im letzten Schritt des Startprozesses aufgerufen wird, sucht \"\n\"es nach der Datei I</etc/inittab> und sieht nach, ob es dort einen \"\n\"B<initdefault>-Eintrag gibt (siehe B<inittab>(5)). Der Eintrag \"\n\"B<initdefault> bestimmt den Anfangs-I<Runlevel> des Systems. Falls es dort \"\n\"keinen derartigen Eintrag gibt (oder gar keine Datei I</etc/inittab> \"\n\"existiert), muss der I<Runlevel> in der Systemkonsole eingegeben werden.\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\"Die Runlevel B<S> oder B<s> initialisieren das System und benötigen keine I</\"\n\"etc/inittab>-Datei.\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\"Im Einzelbenutzermodus wird B</sbin/sulogin> auf I</dev/console> aufgerufen.\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\"Beim Eintritt in den Einzelbenutzermodus initialisiert B<init> die B<stty>-\"\n\"Einstellungen der Konsolen auf vernünftige Werte. Der »Clocal«-Modus wird \"\n\"gesetzt. Hardware-Geschwindigkeit und Datenflusssteuerung werden nicht \"\n\"geändert.\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\"Beim ersten Eintritt in den Mehrbenutzermodus führt B<init> die B<boot>- und \"\n\"B<bootwait>-Einträge aus, um das Einhängen von Dateisystemen zu erlauben, \"\n\"bevor Anwender sich anmelden können. Dann werden alle Einträge, die zum \"\n\"Runlevel passen, verarbeitet.\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\"Wenn ein neuer Prozess gestartet wird, prüft B<init> zuerst, ob die Datei I</\"\n\"etc/initscript> existiert. Ist dies der Fall, benutzt es dieses Skript, um \"\n\"den Prozess zu starten.\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\"Jedesmal, wenn ein Kindprozess endet, zeichnet B<init> diesen Umstand und \"\n\"den Grund der Beendigung in I</var/run/utmp> und I</var/log/wtmp> auf, \"\n\"sofern diese Dateien existieren.\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"RUNLEVEL ÄNDERN\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\"Nachdem alle vorgesehenen Prozesse erzeugt worden sind, wartet B<init> \"\n\"darauf, dass ein untergeordneter Prozess endet, ein Stromausfallsignal oder \"\n\"darauf, dass B<telinit> einen Wechsel des Runlevels signalisiert. Wenn eine \"\n\"der drei oben genannten Bedingungen erfüllt ist, untersucht B<init> nochmals \"\n\"die I</etc/inittab>-Datei. Es können jederzeit neue Einträge zu dieser Datei \"\n\"hinzugefügt werden. Jedoch wartet B<init> immer noch darauf, dass einer der \"\n\"drei oben genannten Bedingungen eintritt. Um eine sofortige Antwort \"\n\"bereitzustellen, können die Befehle B<telinit Q> oder B<q> B<init> \"\n\"aufwecken, um die Datei I</etc/inittab> erneut zu prüfen (neu zu laden).\"\n\n# FIXME SIGPWR → B<SIGPWR>\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\"Falls B<init> sich nicht im Einzelbenutzermodus befindet, und ein \"\n\"Stromausfallsignal (SIGPWR) empfängt, liest es die Datei I</etc/\"\n\"powerstatus>. Anschließend wird ein Befehl anhand des Inhalts der Datei \"\n\"gestartet:\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"F(EHLSCHLAG)\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\"Strom fällt aus, die USV versorgt den Rechner mit Strom. Die B<powerwait>- \"\n\"und B<powerfail>-Einträge werden ausgeführt.\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"O(K)\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"\"\n\"Stromkreis wurde wieder geschlossen, die B<powerokwait>-Einträge werden \"\n\"ausgeführt.\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"L(OW/niedrig)\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\"Strom fällt aus und der Ladestand der USV ist niedrig. Die B<powerfailnow>-\"\n\"Einträge werden ausgeführt.\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\"Wenn I</etc/powerstatus> nicht existiert oder etwas anderes enthält als die \"\n\"Buchstaben B<F>, B<O> oder B<L>, wird B<init> sich so verhalten, als hätte \"\n\"es den Buchstaben B<F> gelesen.\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\"Die Verwendung von B<SIGPWR> und I</etc/powerstatus> werden nicht empfohlen. \"\n\"Wenn etwas mit B<init> interagieren möchte, sollte der Steuerkanal I</run/\"\n\"initctl> verwendet werden - lesen Sie die Handbuchseite von B<initctl>(5), \"\n\"um weitere Dokumentation darüber zu erhalten.\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\"Falls B<init> die Aufforderung zum Wechsel des Runlevels erhält, sendet es \"\n\"das Warnsignal B<SIGTERM> an alle nicht im neuen Runlevel definierten \"\n\"Prozesse. Dann wartet es drei Sekunden bevor es diese Prozesse gewaltsam per \"\n\"Signal B<SIGKILL> beendet. Beachten Sie, dass B<init> davon ausgeht, dass \"\n\"diese Prozesse (und ihre Unterprozesse) in der gleichen Prozessgruppe \"\n\"verbleiben, die B<init> ursprünglich für sie erstellt hatte. Wenn Prozesse \"\n\"ihre Gruppenzugehörigkeit andern, werden Sie diese Signale nicht empfangen. \"\n\"Solche Prozesse müssen separat beendet werden.\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\"B</sbin/telinit> ist mit B</sbin/init> verknüpft. Es empfängt Argumente aus \"\n\"einem Buchstaben oder B<init>-Signale, um die zugehörige Aktion \"\n\"durchzuführen. Die folgenden Argumente dienen als Anweisungen für B<telinit>:\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> oder B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"B<init> mitteilen, in den angegebenen Runlevel zu schalten.\"\n\n#. type: IP\n#: ../init.8:172\n#, no-wrap\nmsgid \"B<a>,\"\nmsgstr \"B<a>,\"\n\n# FIXME missing whitespace\n# FIXME B</etc/inittab> → I</etc/inittab>\n#. type: Plain text\n#: ../init.8:175\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>,B<b> or B<c>.\"\nmsgstr \"\"\n\"B<init> mitteilen, nur die Einträge in der Datei B</etc/inittab> zu \"\n\"verarbeiten, die den Runlevel B<a>, B<b> oder B<c> haben.\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> oder B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"B<init> mitteilen, die Datei I</etc/inittab> erneut zu prüfen.\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> oder B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"B<init> mitteilen, in den Einzelbenutzermodus zu wechseln.\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> oder B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\"B<init> mitteilen, sich selbst erneut (unter Beibehalten des Status) \"\n\"auszuführen. Es kommt zu keiner erneuten Ausführung der Datei I</etc/\"\n\"inittab>. Der Runlevel sollte einer aus B<Ss0123456> sein, anderenfalls wird \"\n\"die Anfrage stillschweigend ignoriert.\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\"B<telinit> kann dem B<init>-Prozess mitteilen, wie viel Zeit dieser zwischen \"\n\"dem Senden der Signale B<SIGTERM> und B<SIGKILL> warten soll. Die Vorgabe \"\n\"ist drei Sekunden, dies kann aber durch die Option B<-t> geändert werden.\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\"B<telinit -e> weist B<init> an, die Umgebung für Prozesse zu ändern, die es \"\n\"erzeugt. Das Argument von B<-e> ist entweder in der Form I<VAR>=I<WERT>, was \"\n\"die Variable I<VAR> auf den Wert I<WERT> setzt oder in der FormI<VAR> (ohne \"\n\"Gleichheitszeichen), was die Variable I<VAR> leert.\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\"B<init> kann nur von Benutzern mit geeigneten Rechten aufgerufen werden.\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\"Das Programm B<init> prüft durch Auswerten der Prozesskennung, ob es B<init> \"\n\"oder B<telinit> ist. Der echte Prozess von B<init> ist immer B<1>. Daraus \"\n\"folgt, dass jemand anstelle des Aufrufs B<telinit> auch nur B<init> als \"\n\"Abkürzung benutzen kann.\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"UMGEBUNGSVARIABLEN\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"B<Init> setzt folgende Umgebungsvariablen für alle seine Kindprozesse:\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\"Wie der Name schon sagt. Nützlich, um festzustellen, ob ein Skript direkt \"\n\"von B<init> ausgeführt wird.\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"Der aktuelle Runlevel des Systems.\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"Der vorherige Runlevel (nützlich nach einer Änderung des Runlevels).\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\"Die Systemkonsole. Diese wird tatsächlich vom Kernel vererbt; wenn sie \"\n\"jedoch nicht gesetzt ist, wird B<init> sie als Vorgabe auf I</dev/console> \"\n\"setzen.\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"BOOTSCHALTER\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\"Es ist möglich, B<init> eine Reihe von Bootschaltern vom Bootmonitor aus (z.\"\n\"B. LILO oder GRUB) zu übergeben. B<init> akzeptiert folgende Schalter:\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s, S, single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\"Bootet im Einzelbenutzermodus. In diesem Modus wird zuerst die Datei I</etc/\"\n\"inittab> untersucht und die »rc«-Startskripte werden ausgeführt, bevor die \"\n\"Einzelbenutzer-Shell gestartet wird.\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1-5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"Runlevel, in den gestartet wird.\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b>, B<emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\"Startet direkt in eine Einzelbenutzer-Shell, ohne irgendwelche anderen \"\n\"Startskripte auszuführen.\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a>, B<auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\"Der LILO-Bootloader fügt das Wort »auto« zur Befehlszeile hinzu, wenn der \"\n\"Kernel mit der Standard-Befehlszeile (ohne Eingriff des Anwenders) gestartet \"\n\"wird. Falls dies gefunden wird, setzt B<init> die Umgebungsvariable \"\n\"»AUTOBOOT« auf »yes«. Beachten Sie, dass Sie die nicht für irgendwelche \"\n\"Sicherheitsmaßnahmen verwenden können - selbstverständlich kann der Anwender \"\n\"»auto« oder B<-a> manuell auf der Befehlszeile angeben.\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z >I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\"Das Argument zu B<-z> wird ignoriert. Sie können es benutzen, um die \"\n\"Befehlszeile etwas zu verlängern, damit sie etwas mehr Platz auf dem Stack \"\n\"reserviert. B<init> kann dann die Befehlszeile derart verändern, dass \"\n\"B<ps>(1) den aktuellen Runlevel anzeigt.\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\"Wenn dieses Argument alleine verwendet wird, zeigt es die aktuelle Version \"\n\"von B<init> auf der Konsole/Standardausgabe an. Dies ist eine schnelle \"\n\"Methode, herauszufinden, welche B<init>-Software und Version verwendet wird. \"\n\"Nachdem die Versionsinformation angezeigt wurde, beendet sich B<init> sofort \"\n\"mit einem Rückgabewert von Null.\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"SCHNITTSTELLE\"\n\n# FIXME /dev → I</dev>\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\"B<init> lauscht auf einem I<fifo> in /dev, I</run/initctl>, auf Nachrichten. \"\n\"B<telinit> benutzt diesen, um mit B<init> zu kommunizieren. Die \"\n\"Schnittstelle ist noch nicht sehr ausführlich dokumentiert oder \"\n\"fertiggestellt. Wer interessiert ist, sollte die Datei I<initreq.h> im \"\n\"Unterverzeichnis des B<init>-Quellcode-Tar-Archives studieren.\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"SIGNALE\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"Init reagiert auf mehrere Signale:\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"Hat die gleichen Auswirkungen wie B<telinit q>.\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\"Beim Empfang dieses Signals schließt B<init> seinen Steuerungs-Fifo I</run/\"\n\"initctl> und öffnet ihn wieder. Nützlich für Systemstartskripte, wenn I</\"\n\"dev> neu eingehängt wird.\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n# FIXME shutdown → B<shutdown>(8)\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\"Wenn B<init> B<SIGUSR2> empfängt, schließt B<init> sich und läßt das Steuer-\"\n\"FIFO B</run/initctl> geschlossen. Damit können Sie sicherstellen, dass \"\n\"B<init> keine Dateien offen hält. Allerdings hindert es B<init> auch daran, \"\n\"die Runlevel zu ändern. Das bedeutet, dass Befehle wie B<shutdown>(8) nicht \"\n\"mehr funktionieren. Der FIFO kann durch Senden des Signals B<SIGUSR1> an \"\n\"B<init> wieder geöffnet werden.\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\"Normalerweise sendet der Kernel dieses Signal an I<init>, wenn CTRL-ALT-DEL \"\n\"gedrückt wurde. Es aktiviert die Aktion I<ctrlaltdel>.\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\"Der Kernel sendet dieses Signal, falls die I<KeyboardSignal>-Taste gedrückt \"\n\"wurde. Es aktiviert die I<kbdrequest>-Aktion.\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"KONFORM ZU\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\"B<init> ist kompatibel zu System-V-Init. Es arbeitet eng mit den Skripten in \"\n\"den Verzeichnissen I</etc/init.d> und I</etc/rc{runlevel}.d> zusammen.Falls \"\n\"Ihr System diesem Grundsatz folgt, sollte sich in diesem Verzeichnis eine \"\n\"B<README>-Datei befinden, die erklärt wie diese Skripte funktionieren.\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:251\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"DATEIEN\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"WARNUNGEN\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\"B<init> geht davon aus, dass alle Prozesse und Kindprozesse in der selben \"\n\"Prozessgruppe verbleiben, die ursprünglich für sie eingerichtet wurde. Falls \"\n\"einer dieser Prozesse die Gruppe wechselt, kann B<init> ihn nicht mehr \"\n\"beenden und es kann passieren, dass Sie in einem Zustand landen, in dem zwei \"\n\"Prozesse von einer Terminalzeile Befehle einlesen wollen.\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\"Auf einem Debian-System veranlasst das Eintreten in Runlevel 1, dass alle \"\n\"Prozesse mit Ausnahme von Kernel-Threads und dem Skript, das das Beenden \"\n\"erledigt und andere Prozesse in deren Sitzung, beendet werden. Als \"\n\"Konsequenz davon ist es nicht sicher, von von Runlevel 1 zu einem \"\n\"Mehrbenutzer-Runlevel zurückzukehren: Daemons, die in Runlevel S gestartet \"\n\"wurden und für normale Operationen benötigt werden, laufen nicht länger. Das \"\n\"System sollte neu gestartet werden.\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\"Wenn B<init> herausfindet, dass es kontinuierlich einen Eintrag öfter als \"\n\"zehn mal in zwei Minuten neu erzeugt, wird es annehmen, dass ein Fehler in \"\n\"der Befehlszeile vorliegt, eine Fehlermeldung auf der Befehlszeile erzeugen \"\n\"und sich weigern, den Eintrag auszuführen, bis fünf Minuten vergangen sind \"\n\"oder es ein Signal empfängt. Dieses verhindert, dass Systemressourcen \"\n\"verschwendet werden, wenn jemandem ein Tippfehler in I</etc/inittab> \"\n\"unterläuft oder das zum Eintrag gehörende Programm gelöscht wird.\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>, ursprüngliche \"\n\"Handbuchseite von E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"13. April 2018\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"Dateiformate\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\"In der Handbuchseite von B<init> wurde bis vor kurzem noch empfohlen, dass \"\n\"Benutzer, die verstehen wollen, wie Meldungen an B<init> gesendet werden, \"\n\"doch den Quellcode von I<init> lesen sollten. Dies ist aber nicht wirklich \"\n\"praxisgerecht.\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magische Zahl                 */\\n\"\n\"        int     cmd;                    /* Art der Anfrage               */\\n\"\n\"        int     runlevel;               /* Ziel-Runlevel                 */\\n\"\n\"        int     sleeptime;              /* Zeit zwischen TERM und KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\n#, fuzzy\n#| msgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"Der vorherige Runlevel (nützlich nach einer Änderung des Runlevels).\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n# FIXME superfluous whitespace\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10. Juli 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"initscript - Skript, das Inittab-Befehle ausführt\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"/bin/sh /etc/initscript ID Runlevels Aktion Prozess\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\"Wenn das Shell-Skript I</etc/initscript> existiert, wird es von B<init> \"\n\"verwendet, um Befehle aus I<inittab> auszuführen. Dieses Skript kann \"\n\"verwendet werden, um für Parameter wie I<ulimit> und I<umask> für jeden \"\n\"Prozess Standardwerte festzulegen.\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\"Dies ist ein Beispiel, das auf Ihrem System als I</etc/initscript.sample> \"\n\"installiert werden könnte.\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\"#\\n\"\n\"# initscript   Wird von init(8) für alle Programme, für die\\n\"\n\"#              ein Prozess erzeugt werden soll, wie folgt\\n\"\n\"#              ausgeführt:\\n\"\n\"#\\n\"\n\"#    /bin/sh /etc/initscript E<lt>IDE<gt> E<lt>LevelE<gt> E<lt>AktionE<gt>  E<lt>ProzessE<gt>\\n\"\n\"#\\n\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\"# Umask auf einen sicheren Wert setzen und Speicherauszüge\\n\"\n\"# nach Abstürzen (Core-Dumps) ermöglichen.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\"# Erhöht die absolute Obergrenze (hard limit) für Datei-\\n\"\n\"# deskriptoren pro Prozess auf 8192. Die überschreitbare (weiche,\\n\"\n\"# soft) Grenze ist immer noch 1024. Sie kann aber von jedem un-\\n\"\n\"# privilegierten Prozess mittels »ulimit -Sn xxx« bis zur\\n\"\n\"# Obergrenze heraufgesetzt werden. Dafür ist ein Kernel der\\n\"\n\"# Version 2.2.13 oder höher erforderlich.\\n\"\n\"  ulimit-Hn 8192\\n\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\"# das Programm ausführen\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\n\n# FIXME B</etc/inittab> → I</etc/inittab>\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\"Dieses Skript ist nicht als Startup-Skript für Daemonen oder Dienste \"\n\"gemeint. Es hat nichts mit einem Skript im I<rc.local>-Stil zu tun. Es ist \"\n\"nur ein Handler für aus B</etc/inittab> heraus ausgeführte Arbeiten. Das \"\n\"Experimentieren damit kann bewirken, dass Ihr System nicht (mehr neu) \"\n\"starten kann.\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4. Dezember 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\"inittab - Format der Datei inittab für den SysV-kompatiblen Init-Prozess\"\n\n# FIXME file name markup\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\"Die Datei B<inittab> beschreibt, welche Prozesse beim Booten und während des \"\n\"normalen Betriebs gestartet werden (z. B. \\\\& /etc/init.d/boot, /etc/init.d/\"\n\"rc, gettys …). B<init>(8) unterscheidet mehrere I<Runlevel>, von denen jeder \"\n\"einen eigenen Satz von Prozessen umfasst, die gestartet werden. Gültige \"\n\"Runlevel sind B<0>-B<6> plus B<A>, B<B> und B<C> für B<ondemand>-Einträge. \"\n\"Ein Eintrag in der Datei B<inittab> hat folgendes Format:\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"I<ID>:I<Runlevel>:I<Aktion>:I<Prozess>\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"Zeilen mit einer Raute »#« am Anfang werden ignoriert.\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<ID>\"\n\n# Zur Schreibweise: http://de.wikipedia.org/wiki/SysVinit\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\"ist eine eindeutige Folge von 1-4 Zeichen zur Identifikation eines Eintrags \"\n\"in B<inittab>. (Für Versionen von SysVinit, die mit der I<alten> Libc5 \"\n\"(E<lt> 5.2.18) oder a.out-Bibliotheken kompiliert wurden, ist das Limit 2 \"\n\"Zeichen).\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\"Hinweis: Traditionell ist für Getty und andere Anmeldeverfahren der Wert des \"\n\"I<ID>-Felds der gleiche wie die Endung des entsprechenden ttys gehalten, z.\"\n\"B. \\\\& B<1> für B<tty1>. Einige alte Anmeldeabrechnungsprogramme könnten das \"\n\"voraussetzen, obwohl der Verfasser sich keines vorstellen kann.\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"I<Runlevel>\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"\"\n\"listet die Runlevel, für die die angegebene Aktion durchgeführt werden soll.\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"I<Aktion>\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"beschreibt, was getan werden soll.\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"I<Prozess>\"\n\n#. }}}\n#. type: Plain text\n#: ../inittab.5:71\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\"gibt an, welcher Prozess ausgeführt werden soll. Wenn das Prozess-Feld mit \"\n\"einem »+«-Zeichen beginnt, führt B<Init>(8) keine utmp- und wtmp-Abrechnung \"\n\"(accounting) für diesen Prozess. Dies ist für Gettys erforderlich, die \"\n\"darauf bestehen, das selber zu erledigen. Dies ist auch ein historischer \"\n\"Fehler. Die Länge dieses Feldes ist auf 127 Zeichen begrenzt.\"\n\n#. type: Plain text\n#: ../inittab.5:78\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\"Das Feld I<Runlevel> kann mehrere Zeichen für verschiedene Runlevel \"\n\"enthalten. Beispielsweise legt B<123> fest, dass der Prozess in den \"\n\"Runleveln 1, 2 und 3 gestartet werden soll. Die Runlevel für B<ondemand>-\"\n\"Einträge können B<A>, B<B> oder B<C> enthalten. Das Feld I<Runlevel> der \"\n\"Einträge B<sysinit>, B<boot> und B<bootwait> wird ignoriert.\"\n\n#. type: Plain text\n#: ../inittab.5:82\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\"Bei einem Wechsel des Runlevels des Systems werden alle laufenden Prozesse, \"\n\"die nicht im neuen Runlevel laufen sollen, beendet; zuerst mit \\\\s-2SIGTERM\"\n\"\\\\s0, dann mit \\\\s-2SIGKILL\\\\s0.\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:85\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"Gültige Einträge für das I<Aktion>-Feld sind:\"\n\n#. type: IP\n#: ../inittab.5:85\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"\"\n\"Der Prozess wird jedesmal, wenn er terminiert, neu gestartet (z.B. \\\\& \"\n\"getty).\"\n\n#. type: IP\n#: ../inittab.5:89\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:95\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\"Der Prozess wird einmal beim Eintritt in den Runlevel gestartet und \"\n\"B<Init>(8) wartet auf den Abschluss des Prozesses.\"\n\n#. type: IP\n#: ../inittab.5:95\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:100\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\"Der Prozess wird einmal während der Initialisierung des Runlevels ausgeführt.\"\n\n#. type: IP\n#: ../inittab.5:100\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\"Der Prozess wird ausgeführt, während das System hochfährt. Das Feld \"\n\"I<Runlevel> wird ignoriert.\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:112\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"Der Prozess läuft während des Systemstarts und B<Init>(8) wartet auf seinen \"\n\"Abschluss (z. B.\\\\& /etc/rc). Das Feld I<Runlevel> wird ignoriert.\"\n\n#. type: IP\n#: ../inittab.5:112\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:116\nmsgid \"This does nothing.\"\nmsgstr \"Es wird keine Aktion durchgeführt.\"\n\n#. type: IP\n#: ../inittab.5:116\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:123\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\"Ein mit B<ondemand> gekennzeichneter Prozess wird jedesmal ausgeführt, wenn \"\n\"das angegebene B<ondemand>-Runlevel aufgerufen wird. Es erfolgt aber kein \"\n\"Wechsel des Runlevels. (Die B<ondemand>-Runlevel sind »a«, »b« und »c«.)\"\n\n#. type: IP\n#: ../inittab.5:123\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:130\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\"Ein B<initdefault>-Eintrag legt den Runlevel nach dem Systemstart fest. \"\n\"Fehlt dieser Eintrag, wird B<init>(8) auf der Konsole nach dem Runlevel \"\n\"fragen. Das I<Prozess>-Feld wird ignoriert.\"\n\n#. type: IP\n#: ../inittab.5:130\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"Dieser Prozess läuft beim Systemstart vor den B<boot>- und B<bootwait>-\"\n\"Einträgen. Das Feld I<Runlevel> wird ignoriert. \"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:142\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\"Dieser Prozess wird ausgeführt, wenn die Spannung der Stromversorgung sinkt. \"\n\"B<init>(8) wird üblicherweise von einem Prozess informiert, der mit der USV \"\n\"kommuniziert. B<init>(8) wartet das Ende dieses Prozesses ab, bevor es \"\n\"weiter macht.\"\n\n#. type: IP\n#: ../inittab.5:142\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:147\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\"Wie B<powerwait>; B<init>(8) wartet aber nicht auf den Abschluss dieses \"\n\"Prozesses.\"\n\n#. type: IP\n#: ../inittab.5:147\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:152\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\"Dieser Prozess wird ausgeführt, sobald B<init>(8) erfährt, dass die \"\n\"Spannungsversorgung wieder normal funktioniert. \"\n\n#. type: IP\n#: ../inittab.5:152\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:158\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\"Dieser Prozess wird ausgeführt, wenn B<init>(8) erfährt, dass die Batterie \"\n\"der externen USV fast leer ist und ein Stromausfall droht. Voraussetzung ist \"\n\"natürlich, dass USV und Überwachungsprozess diesen Zustand erkennen können.\"\n\n#. type: IP\n#: ../inittab.5:158\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:166\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\"Der Prozess wird ausgeführt, wenn B<init>(8) das Signal B<SIGINT> erhält. \"\n\"Dies bedeutet, dass jemand auf der System-Konsole die Tastenkombination \"\n\"B<STRG-ALT-ENTF> eingegeben hat. Normalerweise will man eine Art von \"\n\"B<shutdown> ausführen; entweder in den Single-User-Runlevel wechseln oder \"\n\"den Rechner neu starten.\"\n\n#. type: IP\n#: ../inittab.5:166\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n# Etwas freier\n#. type: Plain text\n#: ../inittab.5:170\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\"Der Prozess wird ausgeführt, wenn der Tastatur-Handler B<init>(8) \"\n\"signalisiert, dass auf der Tastatur der Konsole eine bestimmte \"\n\"Tastenkombination eingegeben wurde.\"\n\n#. type: Plain text\n#: ../inittab.5:176\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\"Die Dokumentation für diese Funktion ist noch nicht vollständig. Zusätzliche \"\n\"Dokumentation finden Sie in den kbd-x.xx-Paketen (das aktuellste war beim \"\n\"Schreiben dieser Handbuchseite kbd-0.94). Wahrscheinlich möchten Sie der \"\n\"»KeyboardSignal«-Aktion eine Tastenkombinationen zuordnen. Um beispielsweise \"\n\"die Kombination »Alt Aufwärtspfeil« zu verwenden, tragen Sie in Ihre keymaps-\"\n\"Datei ein:\"\n\n#. type: Plain text\n#: ../inittab.5:179\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"alt keycode 103 = KeyboardSignal\"\n\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\"Dies ist ein Beispiel für eine inittab, die der alten Linux-inittab ähnelt:\"\n\n#. type: Plain text\n#: ../inittab.5:197\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\"# inittab für Linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\n\n#. type: Plain text\n#: ../inittab.5:202\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\"Diese inittab-Datei führt beim Systemstart I</etc/rc> aus und startet Gettys \"\n\"auf tty1 bis tty4.\"\n\n#. type: Plain text\n#: ../inittab.5:205\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\"Eine ausgefeiltere B<inittab> mit verschiedenen Runleveln (siehe die \"\n\"innenstehenden Kommentare):\"\n\n#. type: Plain text\n#: ../inittab.5:211\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\"# Standard-Runlevel\\n\"\n\"id:2:initdefault:\\n\"\n\n#. type: Plain text\n#: ../inittab.5:214\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\"# Skript für Konfiguration/Initialisierung während\\n\"\n\"# des Systemstarts\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\"# Das läuft im Single-User-Modus.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\n\n#. type: Plain text\n#: ../inittab.5:225\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\"# /etc/init.d führt beim Wechsel des Runlevel die\\n\"\n\"# S- und K-Skripte aus.\\n\"\n\"#\\n\"\n\"# Runlevel 0 ist Halt.\\n\"\n\"# Runlevel 1 ist der Single-User-Betrieb.\\n\"\n\"# Runlevel 2-5 sind Mehrbenutzer-Modi.\\n\"\n\"# Runlevel 6 ist der Neustart (Reboot).\\n\"\n\n#. type: Plain text\n#: ../inittab.5:233\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:236\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\"# Was wird beim »Affengriff« getan?\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\"# Runlevel 2,3: Getty auf virtuellen Konsolen\\n\"\n\"# Runlevel   3: Getty auf Terminal (ttyS0) und Modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:255\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:270\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"Der Autor von B<init>(8) ist E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> Diese Handbuchseite wurde von E<.MT lederer@\\\\:francium\"\n\"\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> geschrieben und \"\n\"von E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> Michael Haardt \"\n\"E<.ME> überarbeitet.\"\n\n#. type: Plain text\n#: ../inittab.5:272\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4. November 2003\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"killall5 - ein Signal an alle Prozesse senden\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../killall5.8:35\n#, no-wrap\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-o> I<PID-Ausschluss>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"weist B<killall5> an, Prozesse mit dieser Kennung (PID) zu übergehen.\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\"B<killall5> kann auch als B<pidof>(8) aufgerufen werden, welches einfach ein \"\n\"(symbolischer) Link auf das Programm B<killall5> ist.\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\"Das Programm gibt 0 zurück, wenn Prozesse abgewürgt werden konnten. Es gibt \"\n\"2 zurück, wenn kein Prozess abgewürgt wurde, und 1, wenn keine Prozesse \"\n\"gefunden werden konnten (I</proc> fehlt).\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"31. Juli 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"last, lastb - eine Liste der zuletzt angemeldeten Benutzer anzeigen\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\"B<last> [B<-R>] [B<->I<Zahl>] [-B<n> I<Zahl\\\\/>] [B<-adFiowx>] [-B<f> I<Datei\"\n\"\\\\/>] [-B<t> I<JJJJMMTTHHMMSS\\\\/>] [I<Name…>] [I<TTY…>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\"B<lastb> [B<-R>] [B<->I<Zahl>] [-B<n> I<Zahl\\\\/>] [-B<f> I<Datei\\\\/>] [B<-\"\n\"adFiowx>] [I<Name…>] [I<TTY…>]\"\n\n#. type: Plain text\n#: ../last.1:56\n#, fuzzy\n#| msgid \"\"\n#| \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#| \"designated by the B<-f> option) and displays a list of all users logged \"\n#| \"in (and out) since that file was created.  One or more I<usernames> and/\"\n#| \"or I<ttys> can be given, in which case B<last> will show only the entries \"\n#| \"matching those arguments.  Names of I<ttys> can be abbreviated, thus \"\n#| \"B<last 0> is the same as B<last tty0>.\"\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\"B<last> durchsucht die Datei I</var/log/wtmp> (oder die durch die Option B<-\"\n\"f> angegebene Datei) rückwärts und zeigt eine Liste aller Benutzer an, die \"\n\"sich seit der Erstellung der Datei angemeldet (und abgemeldet) haben. Einer \"\n\"oder mehrere I<Benutzernamen> und/oder I<TTYs> können angegeben werden, in \"\n\"welchem Fall B<last> nur die Einträge anzeigt, die auf diese Argumente \"\n\"passen. Die Namen der I<TTYs> können abgekürzt werden, daher ist B<last 0> \"\n\"gleichbedeutend mit B<last TTY0>.\"\n\n#. type: Plain text\n#: ../last.1:61\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\"Wenn eine B<SIGINT>-Signalerbrechungstastenkombination (üblicherweise mit \"\n\"Strg-C erzeugt) oder ein B<SIGQUIT>-Signal (üblicherweise mit Strg-\\\\e \"\n\"erzeugt) empfangen wird, zeigt B<last> an, wie weit die Suche durch die \"\n\"Datei bereits fortgeschritten ist; im Falle des B<SIGINT>-Signals wird \"\n\"B<last> dann beeendet.\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\"Der Pseudo-Benutzer B<reboot> meldet sich jedesmal an, wenn das System neu \"\n\"gestartet wird. Daher zeigt B<last reboot> ein Protokoll aller Neustarts \"\n\"seit der Erstellung der Protokolldatei an.\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\"B<lastb> ist gleichbedeutend mit B<last>, außer dass es in der \"\n\"Voreinstellung ein Protokoll aus der Datei I</var/log/btmp> anzeigt, welches \"\n\"die fehlgeschlagenen Anmeldeversuche enthält.\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<Datei>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\"weist B<last> an, eine spezifische Datei anstelle von I</var/log/wtmp> zu \"\n\"verwenden.\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<Zahl>\"\n\n#. type: Plain text\n#: ../last.1:75\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"weist B<last> an, wie viele Zeilen es anzeigen soll.\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<-n> I<Zahl>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"Das gleiche.\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"B<-t> I<JJJJMMTTHHMMSS>\"\n\n#. type: Plain text\n#: ../last.1:82\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\"zeigt den Status der Anmeldungen zur angegebenen I<Zeit> an. Dies ist \"\n\"beispielsweise nützlich, um zu ermitteln, wer zu einem bestimmten Zeitpunkt \"\n\"angemeldet war. Geben Sie diese Zeit mit B<-t> an und schauen Sie nach \"\n\"»still logged in«.\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"unterdrückt die Ausgabe des Rechnernamenfeldes.\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\"zeigt den Rechnernamen in der letzten Spalte an. Dies ist in Kombination mit \"\n\"der nächsten Option nützlich.\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\"übersetzt die IP-Nummer zurück in einen Rechnernamen. Bei nichtlokalen \"\n\"Anmeldungen speichert Linux nicht nur den Namen des fernen Rechners, sondern \"\n\"auch dessen IP-Nummer.\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"gibt die vollständigen Zeiten und Daten der An- und Abmeldungen aus.\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\"entspricht B<-d> insoweit, dass es die IP des fernen Rechners anzeigt, aber \"\n\"in einer Ziffer-Punkt-Notation.\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\"liest eine Wtmp-Datei des alten Typs (von linux-libc5-Anwendungen \"\n\"geschrieben).\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"zeigt die vollständigen Benutzer- und Domainnamen in der Ausgabe an.\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\"zeigt die Einträge zum Herunterfahren und zu den Runlevel-Änderungen des \"\n\"Systems an.\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\"Die Dateien I<wtmp> und I<btmp> könnten nicht gefunden werden. Das System \"\n\"protokolliert nur Informationen in diesen Dateien, wenn diese vorhanden \"\n\"sind. Dies ist ein Problem der lokalen Konfiguration. Wenn Sie diese Dateien \"\n\"verwenden wollen, können sie mit dem einfachen Befehl B<touch>(1) angelegt \"\n\"werden (zum Beispiel B<touch /var/log/wtmp>).\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"logsave - die Ausgabe eines Befehls in einer Protokolldatei speichern\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"B<logsave> [ B<-asv> ] I<Protokolldatei Befehl [ … ]>\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\"Das Programm B<logsave> führt den einen I<Befehl> mit den angegebenen \"\n\"Argumenten aus und speichert eine Kopie der Ausgabe in die \"\n\"I<Protokolldatei>. Falls das Verzeichnis für die I<Protokolldatei> nicht \"\n\"existiert, sammelt B<logsave> die Ausgabe im Speicher, bis die Datei \"\n\"geschrieben werden kann. Außerdem wird eine Kopie der Ausgabe in die \"\n\"Standardausgabe gschrieben.\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\"Falls das Programm als einzelnes Minuszeichen (»-«) angegeben wird, dann \"\n\"bezieht B<logsave> seine Eingabe aus der Standardeingabe, anstatt ein \"\n\"Programm auszuführen, und speichert die Ausgabe in der I<Protokolldatei>.\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\"B<logsave> eignet sich zum Speichern der Ausgaben initialer Boot-Skripte, \"\n\"bis die I</var>-Partition eingehängt ist und die Ausgabe in I</var/log> \"\n\"geschrieben werden kann.\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\"bewirkt, dass die Ausgabe an die I<Protokolldatei> angehängt wird, anstatt \"\n\"deren momentanen Inhalt zu ersetzen.\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"bewirkt, dass die Ausgaben von B<logsave> ausführlicher werden.\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"26. Februar 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Dienstprogramme für Benutzer\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"mesg - den Schreibzugriff auf Ihr Terminal steuern\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\"B<mesg> steuert den Zugriff auf Ihr Terminal durch andere. Es wird \"\n\"üblicherweise dazu verwendet, anderen Benutzern entweder zu gestatten oder \"\n\"zu verbieten, auf Ihr Terminal zu schreiben (siehe B<write>(1)).\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"erlaubt den Schreibzugriff auf Ihr Terminal.\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"verbietet den Schreibzugriff auf Ihr Terminal.\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Falls keine Argumente angegeben sind, zeigt B<mesg> den aktuellen Status des \"\n\"Zugriffs auf Ihr Terminal an.\"\n\n# FIXME mesg → B<mesg>\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\"B<mesg> geht davon aus, dass seine Standardeingabe mit Ihrem Terminal \"\n\"verbunden ist. Das bedeutet auch, falls Sie mehrfach angemeldet sind, den \"\n\"B<mesg>-Status anderer Sitzungen durch Umleitung abfragen oder setzen \"\n\"können. Zum Beispiel »mesg n E<lt> /dev/pts/46«.\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"MOUNTPOINT\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"15. Mai 2004\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"mountpoint - überprüfen, ob ein Verzeichnis ein Einhängepunkt ist\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"B<mountpoint> [B<-q>] [B<-d>] I</Pfad/zum/Verzeichnis>\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"B<mountpoint> B<-x> I</dev/Gerät>\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"B<mountpoint> überprüft, ob ein Verzeichnis ein Einhängepunkt ist.\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"unterdrückt die Ausgaben.\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\"zeigt die Major/Minor-Gerätenummern des Dateisystems in der Standardausgabe \"\n\"an.\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\"zeigt die Major/Minor-Gerätenummer des angegebenen blockorientierten Geräts \"\n\"in der Standardausgabe an.\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\"Null, falls das Verzeichnis ein Einhängepunkt ist, nicht Null, wenn nicht.\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\"Symbolischen Links wird nur gefolgt, wenn die Option B<-x> angegeben wird. \"\n\"Um das Verfolgen von symbolischen Links zu erzwingen, hängen Sie einen \"\n\"Schrägstrich an den Pfad zum Verzeichnis an.\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\"Der Name des Befehls ist irreführend, wenn die Option B<-x> verwendet wird, \"\n\"aber diese Option ist nützlich beim Vergleichen, ob ein Verzeichnis und ein \"\n\"Gerät zusammengehören. Es gibt keinen anderen Befehl, der dies so einfach \"\n\"ausgeben kann.\"\n\n# FIXME mountpoint → B<mountpoint>\n# FIXME binded → bind-mounted\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1. September 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"pidof - die Prozesskennung eines laufenden Programms finden\"\n\n#. type: Plain text\n#: ../pidof.8:36\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<Ausschluss-PID[,\"\n\"Ausschluss-PID…]>] [B<-o> I<Ausschluss-PID[,Ausschluss-PID…]…>] [B<-d> \"\n\"I<Trenner>] I<Programm> [I<Programm…>]\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n# FIXME missing markup\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"-d I<Trenner>\"\n\n# FIXME I<pidof> → B<pidof>\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\"weist B<pidof> an, den angegebenen I<Trenner> für die Ausgabe zu verwenden, \"\n\"falls mehr als eine PID angezeigt wird. Der vorgegebene Trenner ist ein \"\n\"Leerzeichen.\"\n\n# FIXME -o → B<-o>\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"-o I<Ausschluss-PID>\"\n\n# FIXME I<pidof> → B<pidof>\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\"weist B<pidof> an, Prozesse mit dieser Kennung (PID) zu übergehen. Mit der \"\n\"speziellen PID B<%PPID> können Sie den Namen des Elternprozesses des \"\n\"Programms B<pidof> benennen, mit anderen Worten, die aufrufende Shell oder \"\n\"das Shell-Skript.\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"Es wurde mindestens ein Programm mit dem angegebenen Namen gefunden.\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"Es wurde kein Programm mit dem angegebenen Namen gefunden.\"\n\n# FIXME I<pidof> → B<pidof>\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\"B<pidof> ist eigentlich das gleiche Programm wie B<killall5>(8). Das \"\n\"Programm verhält sich nur unterschiedlich, je nachdem, unter welchem Namen \"\n\"es aufgerufen wird.\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"12. November 2018\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"readbootlog - Inhalt des Bootprotokolls ohne Steuerzeichen anzeigen\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<Datei\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"zeigt eine kurze Hilfemeldung an.\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"27. Mai 1997\"\n\n# FIXME -- → -\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"\"\n\"runlevel - den vorhergehenden und aktuellen Runlevel des Systems ausgeben\"\n\n#. type: Plain text\n#: ../runlevel.8:24\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"B<runlevel> [I<utmp>]\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\"B<runlevel> liest die I<utmp>-Datei des Systems (typischerweise I</var/run/\"\n\"utmp>), um den Runlevel zu ermitteln und dann den vorherigen und aktuellen \"\n\"Runlevel, durch ein einzelnes Leerzeichen getrennt, in die Standardausgabe \"\n\"zu schreiben. Gibt es keinen vorherigen Runlevel, wird stattdessen der \"\n\"Buchstabe B<N> ausgegeben.\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\"Falls keine I<utmp>-Datei existiert und kein Runlevel in der Datei I</var/\"\n\"run/runlevel> vermerkt ist, gibt B<runlevel> das Wort B<unknown> aus und \"\n\"beendet sich mit einem Fehler.\"\n\n# FIXME B<Runlevel> → B<runlevel>\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\"B<runlevel> kann in I<rc>-Skripten als Ersatz für den System-V-Befehl B<who -\"\n\"r> verwendet werden. Allerdings steht diese Information in neueren Versionen \"\n\"von B<init>(8) in den Umgebungsvariablen B<RUNLEVEL> und B<PREVLEVEL> zur \"\n\"Verfügung.\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"I<utmp>\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"gibt den Namen der zu lesenden I<utmp>-Datei an.\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"12. November 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"shutdown - das System herunterfahren\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<Sekunden>] I<Zeit> \"\n\"[I<Warnmeldung>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\"fährt nicht wirklich herunter, sondern sendet lediglich Warnmeldungen an \"\n\"alle.\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"Startet nach dem Herunterfahren neu.\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"Überspringt B<fsck>(8) beim Neustart.\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"Erzwingt B<fsck>(8) beim Neustart.\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"B<-t> I<Sekunden>\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"I<Zeit>\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\nmsgid \"When to shutdown.\"\nmsgstr \"Gibt den Zeitpunkt des Herunterfahrens an.\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"I<Warnmeldung>\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\nmsgid \"Message to send to all users.\"\nmsgstr \"Gibt die an alle Benutzer zu sendende Meldung an.\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"ZUGRIFFSKONTROLLE\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"B<shutdown: no authorized users logged in>\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"17. Januar 2006\"\n\n# FIXME Single → single\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"sulogin - Einzelbenutzeranmeldung\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SEKUNDEN> ] [ I<TTY> ]\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\"I<sulogin> wird von B<init>(8) aufgerufen, wenn das System in den \"\n\"Einzelbenutzer-Modus eintritt (dies geschieht durch einen Eintrag in \"\n\"B<inittab>(5).)  B<init>(8) versucht auch, B<sulogin> auszuführen, wenn an \"\n\"den Bootloader (zum Beispiel B<grub>(8)) die Option B<-b> übergeben wird.\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"Der Benutzer wird um folgende Eingaben gebeten:\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"Administratorpasswort für Wartungszwecke eingeben\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"(oder Strg+D drücken, um fortzufahren):\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\"B<sulogin> wird mit dem aktuellen Terminal oder mit dem optional in der \"\n\"Befehlszeile angegebenen Gerät verbunden (Letzteres ist typischerweise I</\"\n\"dev/console>).\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\"Wenn die Option B<-t> verwendet wird, wartet das Programm nur die angegebene \"\n\"Anzahl Sekunden auf Benutzereingaben.\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\"Wenn der Benutzer die Einzelbenutzer-Shell verlässt oder an der \"\n\"Eingabeaufforderung Strg-D drückt, wird der Bootvorgang in den Standard-\"\n\"Runlevel gestartet bzw. fortgesetzt.\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, no-wrap\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"UMGEBUNGSVARIABLEN\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\"B<sulogin> schaut nach der Umgebungsvariable B<SUSHELL> oder B<sushell>, um \"\n\"zu bestimmen, welche Shell gestartet werden soll. Falls die \"\n\"Umgebungsvariable nicht gesetzt ist, versucht es, die Shell des Root-\"\n\"Benutzers aus I</etc/passwd> zu starten. Falls dies fehlschlägt, fällt es \"\n\"auf I</bin/sh> zurück.\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"AUSWEICHMETHODEN\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\"B<sulogin> prüft das Root-Password zuerst mit der Standardmethode \"\n\"(B<getpwnam>(3)). Dann, falls die Option B<-e> angegeben wurde, untersucht \"\n\"B<sulogin> folgende Dateien direkt, um das Root-Passwort zu finden:\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"/etc/shadow (falls vorhanden)\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\"Falls diese beschädigt oder nicht vorhanden sind, startet B<sulogin> eine \"\n\"Root-Shell, ohne nach einem Passwort zu fragen. Verwenden Sie die Option B<-\"\n\"e> nur dann, wenn Sie sicher sind, dass die Konsole physisch gegen \"\n\"unerlaubten Zugriff geschützt ist.\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"8. Februar 2010\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"utmpdump - UTMP- und WTMP-Dateien im Rohformat ausgeben\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"B<utmpdump> [B<-froh>] I<Dateiname>\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\"B<utmpdump> ist ein einfaches Programm zum Ausgeben von UTMP- und WTMP-\"\n\"Dateien im Rohformat, so dass diese untersucht werden können.\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"gibt angehängte Daten aus, wenn die Datei wächst.\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\"kehrt den Vorgang um. Die bearbeiteten Anmeldeinformationen werden in die \"\n\"UTMP- oder WTMP-Dateien zurück geschrieben.\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"verwendet das alte Libc5-Format.\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n# FIXME utmpdump → B<utmpdump>\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\"B<utmpdump> kann im Falle beschädigter UTMP- oder WTMP-Einträge hilfreich \"\n\"sein. Es kann die Daten in eine ASCII-Datei ausgeben, die Sie bearbeiten \"\n\"können, um die falschen Einträge zu entfernen. Folgender Befehl führt dies \"\n\"aus:\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"B<utmpdump -r E<lt> ASCII-Datei E<gt> wtmp>\\n\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\"Seien Sie gewarnt, B<utmpdump> wurde nur für Debugging-Zwecke geschrieben.\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\"Sie dürfen die Option B<-r> B<nicht> verwenden, da das Format der utmp/wtmp-\"\n\"Dateien stark vom Eingabeformat abhängt. Dieses Werkzeug wurde B<nicht> für \"\n\"normale Verwendung geschrieben, sondern lediglich für Debugging-Zwecke.\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"15. April 2003\"\n\n#. type: Plain text\n#: ../wall.1:22\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - eine Nachricht an die Terminals aller Benutzer senden\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"B<wall> [B<-n>] [I<Nachricht>]\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\"B<wall> ignoriert die Umgebungsvariable B<TZ> - die im Banner ausgegebene \"\n\"Zeit basiert auf der lokalen Zeit des Systems.\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#~ msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n# FIXME fstab-decode → FSTAB-DECODE\n#, no-wrap\n#~ msgid \"fstab-decode\"\n#~ msgstr \"fstab-decode\"\n\n# FIXME missing whitespace\n#, no-wrap\n#~ msgid \"B<a>,B<b>,B<c>\"\n#~ msgstr \"B<a>,B<b>,B<c>\"\n\n#~ msgid \"Jesse Smith E<lt>jsmith@resonatingmedia.comE<gt>\"\n#~ msgstr \"Jesse Smith E<lt>jsmith@resonatingmedia.comE<gt>\"\n\n#~ msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n\n# FIXME missing whitespace\n#, no-wrap\n#~ msgid \"LAST,LASTB\"\n#~ msgstr \"LAST, LASTB\"\n\n# FIXME unused variables\n#, no-wrap\n#~ msgid \"@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@\"\n#~ msgstr \"@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@\"\n\n# FIXME unused variables\n#, no-wrap\n#~ msgid \"E2fsprogs version @E2FSPROGS_VERSION@\"\n#~ msgstr \"E2fsprogs Version @E2FSPROGS_VERSION@\"\n\n# FIXMe missing markup\n#~ msgid \"Theodore Ts'o (tytso@mit.edu)\"\n#~ msgstr \"Theodore Ts'o E<lt>tytso@mit.eduE<gt>\"\n\n#, no-wrap\n#~ msgid \"Linux User's Manual\"\n#~ msgstr \"Linux-Benutzerhandbuch\"\n\n# FIXME missing markup\n#~ msgid \"Miquel van Smoorenburg (miquels@cistron.nl)\"\n#~ msgstr \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n\n# FIXME missing markup\n#, no-wrap\n#~ msgid \"-s\"\n#~ msgstr \"-s\"\n\n# FIXME missing markup\n#, no-wrap\n#~ msgid \"-c\"\n#~ msgstr \"-c\"\n\n# FIXME missing markup\n#, no-wrap\n#~ msgid \"-n\"\n#~ msgstr \"-n\"\n\n# FIXME missing markup\n#, no-wrap\n#~ msgid \"-q\"\n#~ msgstr \"-q\"\n\n# FIXME missing markup\n#, no-wrap\n#~ msgid \"-x\"\n#~ msgstr \"-x\"\n\n# FIXME missing markup\n#, no-wrap\n#~ msgid \"-z\"\n#~ msgstr \"-z\"\n\n# FIXME markup file name\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> \"\n#~| \"to determine what shell to start.  If the environment variable is not \"\n#~| \"set, it will try to execute root's shell from I</etc/passwd>.  If that \"\n#~| \"fails, it will fall back to I</bin/sh>.\"\n#~ msgid \"\"\n#~ \"I<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n#~ \"determine what shell to start. If the environment variable is not set, it \"\n#~ \"will try to execute root's shell from /etc/passwd. If that fails it will \"\n#~ \"fall back to B</bin/sh>.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> schaut nach der Umgebungsvariable B<SUSHELL> oder B<sushell>, \"\n#~ \"um zu bestimmen, welche Shell gestartet werden soll. Falls die \"\n#~ \"Umgebungsvariable nicht gesetzt ist, versucht es, die Shell des Root-\"\n#~ \"Benutzers aus I</etc/passwd> zu starten. Falls dies fehlschlägt, fällt es \"\n#~ \"auf I</bin/sh> zurück.\"\n\n#~ msgid \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n\n#, no-wrap\n#~ msgid \"systemd 249\"\n#~ msgstr \"systemd 249\"\n\n#, no-wrap\n#~ msgid \"halt\"\n#~ msgstr \"halt\"\n\n#~ msgid \"B<halt> [OPTIONS...]\"\n#~ msgstr \"B<halt> [OPTIONEN…]\"\n\n#~ msgid \"B<poweroff> [OPTIONS...]\"\n#~ msgstr \"B<poweroff> [OPTIONEN…]\"\n\n#~ msgid \"B<reboot> [OPTIONS...]\"\n#~ msgstr \"B<reboot> [OPTIONEN…]\"\n\n#~ msgid \"\"\n#~ \"B<halt>, B<poweroff>, B<reboot> may be used to halt, power-off, or reboot \"\n#~ \"the machine\\\\&. All three commands take the same options\\\\&.\"\n#~ msgstr \"\"\n#~ \"B<halt>, B<poweroff>, B<reboot> kann zum Herunterfahren, Ausschalten oder \"\n#~ \"Neustarten der Maschine verwandt werden\\\\&. Alle drei Befehle akzeptieren \"\n#~ \"die gleichen Optionen\\\\&.\"\n\n#~ msgid \"The following options are understood:\"\n#~ msgstr \"Die folgenden Optionen werden verstanden:\"\n\n#~ msgid \"B<--help>\"\n#~ msgstr \"B<--help>\"\n\n#~ msgid \"Print a short help text and exit\\\\&.\"\n#~ msgstr \"Zeigt einen kurzen Hilfetext an und beendet das Programm\\\\&.\"\n\n#~ msgid \"B<--halt>\"\n#~ msgstr \"B<--halt>\"\n\n#~ msgid \"\"\n#~ \"Halt the machine, regardless of which one of the three commands is invoked\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die Maschine anhalten, unabhängig davon, welcher der drei Befehle \"\n#~ \"aufgerufen wurde\\\\&.\"\n\n#~ msgid \"B<-p>, B<--poweroff>\"\n#~ msgstr \"B<-p>, B<--poweroff>\"\n\n#~ msgid \"\"\n#~ \"Power-off the machine, regardless of which one of the three commands is \"\n#~ \"invoked\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die Maschine ausschalten, unabhängig davon, welcher der drei Befehle \"\n#~ \"aufgerufen wurde\\\\&.\"\n\n#~ msgid \"B<--reboot>\"\n#~ msgstr \"B<--reboot>\"\n\n#~ msgid \"\"\n#~ \"Reboot the machine, regardless of which one of the three commands is \"\n#~ \"invoked\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die Maschine neustarten, unabhängig davon, welcher der drei Befehle \"\n#~ \"aufgerufen wurde\\\\&.\"\n\n#~ msgid \"B<-f>, B<--force>\"\n#~ msgstr \"B<-f>, B<--force>\"\n\n#~ msgid \"\"\n#~ \"Force immediate halt, power-off, or reboot\\\\&. When specified once, this \"\n#~ \"results in an immediate but clean shutdown by the system manager\\\\&. When \"\n#~ \"specified twice, this results in an immediate shutdown without contacting \"\n#~ \"the system manager\\\\&. See the description of B<--force> in \"\n#~ \"B<systemctl>(1)  for more details\\\\&.\"\n#~ msgstr \"\"\n#~ \"Erzwingt sofortiges Anhalten, Ausschalten oder Neustarten\\\\&. Wird dies \"\n#~ \"einmal angegeben, führt dies zu einem sofortigen aber sauberen \"\n#~ \"Herunterfahren durch den Systemverwalter\\\\&. Bei doppelter Angabe führt \"\n#~ \"dies zu einem sofortigen Herunterfahren ohne Kontakt zum Diensteverwalter\"\n#~ \"\\\\&. Lesen Sie die Beschreibung von B<--force> in B<systemctl>(1) für \"\n#~ \"weitere Details\\\\&.\"\n\n#~ msgid \"B<-w>, B<--wtmp-only>\"\n#~ msgstr \"B<-w>, B<--wtmp-only>\"\n\n#~ msgid \"\"\n#~ \"Only write wtmp shutdown entry, do not actually halt, power-off, reboot\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Nur einen Wtmp-Herunterfahreintrag schreiben, nicht tatsächlich die \"\n#~ \"Maschine anhalten, ausschalten oder neustarten\\\\&.\"\n\n#~ msgid \"B<-d>, B<--no-wtmp>\"\n#~ msgstr \"B<-d>, B<--no-wtmp>\"\n\n#~ msgid \"B<-n>, B<--no-sync>\"\n#~ msgstr \"B<-n>, B<--no-sync>\"\n\n#~ msgid \"\"\n#~ \"Don\\\\*(Aqt sync hard disks/storage media before halt, power-off, reboot\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die Festplatte/das Speichermedium nicht vor dem Herunterfahren, \"\n#~ \"Ausschalten oder Neustarten synchronisieren\\\\&.\"\n\n#~ msgid \"B<--no-wall>\"\n#~ msgstr \"B<--no-wall>\"\n\n#~ msgid \"Do not send wall message before halt, power-off, reboot\\\\&.\"\n#~ msgstr \"\"\n#~ \"Keine Wall-Nachrichten vor dem Anhalten, Herunterfahren oder Neustarten \"\n#~ \"senden\\\\&.\"\n\n#~ msgid \"On success, 0 is returned, a non-zero failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null\"\n#~ \"\\\\&.\"\n\n#~ msgid \"\"\n#~ \"These commands are implemented in a way that preserves basic \"\n#~ \"compatibility with the original SysV commands\\\\&.  B<systemctl>(1)  verbs \"\n#~ \"B<halt>, B<poweroff>, B<reboot> provide the same functionality with some \"\n#~ \"additional features\\\\&.\"\n#~ msgstr \"\"\n#~ \"Diese Befehle sind auf eine Art implementiert, die die grundlegende \"\n#~ \"Kompatibilität zu den ursprünglichen SysV-Befehlen erhalten\\\\&. Die \"\n#~ \"Unterbefehle B<halt>, B<poweroff>, B<reboot> von B<systemctl>(1) stellen \"\n#~ \"die gleichen Funktionalitäten mit zusätzlichen Funktionen bereit\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Note that on many SysV systems B<halt> used to be synonymous to \"\n#~ \"B<poweroff>, i\\\\&.e\\\\&. both commands would equally result in powering \"\n#~ \"the machine off\\\\&. systemd is more accurate here, and B<halt> results in \"\n#~ \"halting the machine only (leaving power on), and B<poweroff> is required \"\n#~ \"to actually power it off\\\\&.\"\n#~ msgstr \"\"\n#~ \"Beachten Sie, dass viele SysV-Systeme B<halt> als Synonym zu B<poweroff> \"\n#~ \"verwendet haben, das heißt, dass beide Befehle gleichermaßen ein \"\n#~ \"Ausschalten des Systems bewirken würden\\\\&. Systemd ist hier genauer: \"\n#~ \"B<halt> bewirkt nur ein Anhalten der Maschine (die eingeschaltet bleibt) \"\n#~ \"und B<poweroff> ist nötig, um sie tatsächlich auszuschalten\\\\&.\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n\n#, no-wrap\n#~ msgid \"systemd 250\"\n#~ msgstr \"systemd 250\"\n\n# FIXME: somesuch sounds strange\n#~ msgid \"\"\n#~ \"This script is not meant as startup script for daemons or somesuch.  It \"\n#~ \"has nothing to do with a I<rc.local> style script. It's just a handler \"\n#~ \"for things executed from B</etc/inittab>. Experimenting with this can \"\n#~ \"make your system un(re)bootable.\"\n#~ msgstr \"\"\n#~ \"Dieses Skript ist nicht als Startup-Skript für Daemonen oder so etwas \"\n#~ \"gemeint. Es hat nichts mit einem Skript im I<rc.local>-Stil zu tun. Es \"\n#~ \"ist nur ein Handler für aus B</etc/inittab> heraus ausgeführte Arbeiten. \"\n#~ \"Das Experimentieren damit kann bewirken, dass Ihr System nicht (mehr neu) \"\n#~ \"starten kann.\"\n\n#, no-wrap\n#~ msgid \"2021-06-02\"\n#~ msgstr \"2. Juni 2021\"\n\n#, no-wrap\n#~ msgid \"util-linux 2.37.2\"\n#~ msgstr \"util-linux 2.37.2\"\n\n#~ msgid \"B<last> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<last> [Optionen] [I<Benutzername>…] [I<TTY>…]\"\n\n#~ msgid \"B<lastb> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<lastb> [Optionen] [I<Benutzername>…] [I<TTY>…]\"\n\n#~ msgid \"\"\n#~ \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#~ \"designated by the B<-f> option) and displays a list of all users logged \"\n#~ \"in (and out) since that file was created. One or more I<usernames> and/or \"\n#~ \"I<ttys> can be given, in which case B<last> will show only the entries \"\n#~ \"matching those arguments. Names of I<ttys> can be abbreviated, thus \"\n#~ \"B<last 0> is the same as B<last tty0>.\"\n#~ msgstr \"\"\n#~ \"B<last> durchsucht die Datei I</var/log/wtmp> (oder die durch die Option \"\n#~ \"B<-f> angegebene Datei) rückwärts und zeigt eine Liste aller Benutzer an, \"\n#~ \"die sich seit der Erstellung der Datei angemeldet (und abgemeldet) haben. \"\n#~ \"Einer oder mehrere I<Benutzernamen> und/oder I<TTYs> können angegeben \"\n#~ \"werden, in welchem Fall B<last> nur die Einträge anzeigt, die auf diese \"\n#~ \"Argumente passen. Die Namen der I<TTYs> können abgekürzt werden, daher \"\n#~ \"ist B<last 0> gleichbedeutend mit B<last TTY0>.\"\n\n#~ msgid \"\"\n#~ \"When catching a B<SIGINT> signal (generated by the interrupt key, usually \"\n#~ \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#~ \"through the file; in the case of the B<SIGINT> signal B<last> will then \"\n#~ \"terminate.\"\n#~ msgstr \"\"\n#~ \"Wenn eine B<SIGINT>-Signalunterbrechungstastenkombination (üblicherweise \"\n#~ \"mit Strg-C erzeugt) oder ein B<SIGQUIT>-Signal empfangen wird, zeigt \"\n#~ \"B<last> an, wie weit die Suche durch die Datei bereits fortgeschritten \"\n#~ \"ist; im Falle des B<SIGINT>-Signals wird B<last> dann beeendet.\"\n\n#~ msgid \"\"\n#~ \"The pseudo user B<reboot> logs in each time the system is rebooted. Thus \"\n#~ \"B<last reboot> will show a log of all the reboots since the log file was \"\n#~ \"created.\"\n#~ msgstr \"\"\n#~ \"Der Pseudo-Benutzer B<reboot> meldet sich jedesmal an, wenn das System \"\n#~ \"neu gestartet wird. Daher zeigt B<last reboot> ein Protokoll aller \"\n#~ \"Neustarts seit der Erstellung der Protokolldatei an.\"\n\n#~ msgid \"B<-a>, B<--hostlast>\"\n#~ msgstr \"B<-a>, B<--hostlast>\"\n\n#~ msgid \"B<-d>, B<--dns>\"\n#~ msgstr \"B<-d>, B<--dns>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>. The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"weist B<last> an, eine bestimmte I<Datei> anstelle von I</var/log/wtmp> \"\n#~ \"zu verwenden. Die Option B<--file> kann mehrfach angegeben werden, \"\n#~ \"wodurch alle angegebenen Dateien verarbeitet werden.\"\n\n#~ msgid \"B<-F>, B<--fulltimes>\"\n#~ msgstr \"B<-F>, B<--fulltimes>\"\n\n#~ msgid \"B<-i>, B<--ip>\"\n#~ msgstr \"B<-i>, B<--ip>\"\n\n# Müsste das nicht eigentlich IP-Adresse heißen?\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host\\\\(cqs IP number instead of the name.\"\n#~ msgstr \"\"\n#~ \"wie B<--dns>, zeigt aber die IP-Adresse des Rechners anstelle des Namens \"\n#~ \"an.\"\n\n#~ msgid \"B<->I<number>; B<-n>, B<--limit> I<number>\"\n#~ msgstr \"B<->I<Zahl>; B<-n>, B<--limit> I<Zahl>\"\n\n#~ msgid \"B<-p>, B<--present> I<time>\"\n#~ msgstr \"B<-p>, B<--present> I<Zeit>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time. This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"zeigt die Benutzer an, die zur angegebenen Zeit angemeldet waren. Dies \"\n#~ \"entspricht der Verwendung der Optionen B<--since> und B<--until> zusammen \"\n#~ \"mit der gleichen I<Zeit>.\"\n\n#~ msgid \"B<-R>, B<--nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#~ msgid \"B<-s>, B<--since> I<time>\"\n#~ msgstr \"B<-s>, B<--since> I<Zeit>\"\n\n#~ msgid \"\"\n#~ \"Display the state of logins since the specified I<time>. This is useful, \"\n#~ \"e.g., to easily determine who was logged in at a particular time. The \"\n#~ \"option is often combined with B<--until>.\"\n#~ msgstr \"\"\n#~ \"zeigt den Status der Anmeldungen seit der angegebenen I<Zeit> an. Dies \"\n#~ \"ist beispielsweise nützlich, um zu ermitteln, wer zu einem bestimmten \"\n#~ \"Zeitpunkt angemeldet war. Diese Option wird oft mit B<--until> kombiniert.\"\n\n#~ msgid \"B<-t>, B<--until> I<time>\"\n#~ msgstr \"B<-t>, B<--until> I<Zeit>\"\n\n#~ msgid \"Display the state of logins until the specified I<time>.\"\n#~ msgstr \"zeigt den Status der Anmeldungen bis zu der angegebenen I<Zeit> an.\"\n\n#~ msgid \"B<--time-format> I<format>\"\n#~ msgstr \"B<--time-format> I<Format>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>. The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option. The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format. The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"definiert das I<Format> des Ausgabe-Zeitstempels, entweder I<notime>, \"\n#~ \"I<short>, I<full> oder I<iso>. Die Variante I<notime> gibt keinerlei \"\n#~ \"Zeitstempel aus, I<short> ist die Vorgabe, und I<full> ist \"\n#~ \"gleichbedeutend mit der Option B<--fulltimes>. Die Variante I<iso> zeigt \"\n#~ \"den Zeitstempel im ISO-8601-Format an. Das ISO-Format zeigt Informationen \"\n#~ \"zur Zeitzone an, wodurch es bevorzugt zum Einsatz kommt, wenn Ausgaben \"\n#~ \"außerhalb des Systems untersucht werden.\"\n\n#~ msgid \"B<-w>, B<--fullnames>\"\n#~ msgstr \"B<-w>, B<--fullnames>\"\n\n#~ msgid \"B<-x>, B<--system>\"\n#~ msgstr \"B<-x>, B<--system>\"\n\n#, no-wrap\n#~ msgid \"TIME FORMATS\"\n#~ msgstr \"ZEITFORMATE\"\n\n#~ msgid \"\"\n#~ \"The options that take the I<time> argument understand the following \"\n#~ \"formats:\"\n#~ msgstr \"\"\n#~ \"Die Optionen, die das I<Zeit>-Argument akzeptieren, verstehen folgende \"\n#~ \"Formate:\"\n\n#, no-wrap\n#~ msgid \".sp\\n\"\n#~ msgstr \".sp\\n\"\n\n#, no-wrap\n#~ msgid \"YYYYMMDDhhmmss\"\n#~ msgstr \"JJJJMMTThhmmss\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm:ss\"\n#~ msgstr \"JJJJ-MM-TT hh:mm:ss\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm\"\n#~ msgstr \"JJJJ-MM-TT hh:mm\"\n\n#, no-wrap\n#~ msgid \"(seconds will be set to 00)\"\n#~ msgstr \"(Sekunden werden auf 00 gesetzt)\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD\"\n#~ msgstr \"JJJJ-MM-TT\"\n\n#, no-wrap\n#~ msgid \"(time will be set to 00:00:00)\"\n#~ msgstr \"(Zeit wird auf 00:00:00 gesetzt)\"\n\n#, no-wrap\n#~ msgid \"hh:mm:ss\"\n#~ msgstr \"hh:mm:ss\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today)\"\n#~ msgstr \"(Datum wird auf heute gesetzt)\"\n\n#, no-wrap\n#~ msgid \"hh:mm\"\n#~ msgstr \"hh:mm\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today, seconds to 00)\"\n#~ msgstr \"(Datum wird auf heute gesetzt, Sekunden auf 00)\"\n\n#, no-wrap\n#~ msgid \"now\"\n#~ msgstr \"now\"\n\n#, no-wrap\n#~ msgid \"yesterday\"\n#~ msgstr \"yesterday\"\n\n#, no-wrap\n#~ msgid \"(time is set to 00:00:00)\"\n#~ msgstr \"(Zeit wird auf 00:00:00 gesetzt)\"\n\n#, no-wrap\n#~ msgid \"today\"\n#~ msgstr \"today\"\n\n#, no-wrap\n#~ msgid \"tomorrow\"\n#~ msgstr \"tomorrow\"\n\n#, no-wrap\n#~ msgid \"+5min\"\n#~ msgstr \"+5min\"\n\n#, no-wrap\n#~ msgid \"-5days\"\n#~ msgstr \"-5days\"\n\n#~ msgid \"I</var/log/wtmp>, I</var/log/btmp>\"\n#~ msgstr \"I</var/log/wtmp>, I</var/log/btmp>\"\n\n#, no-wrap\n#~ msgid \"AUTHORS\"\n#~ msgstr \"AUTOREN\"\n\n#~ msgid \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n#~ msgstr \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"REPORTING BUGS\"\n#~ msgstr \"FEHLER MELDEN\"\n\n#~ msgid \"For bug reports, use the issue tracker at\"\n#~ msgstr \"Verwenden Sie zum Melden von Fehlern das Fehlererfassungssystem auf\"\n\n#, no-wrap\n#~ msgid \"AVAILABILITY\"\n#~ msgstr \"VERFÜGBARKEIT\"\n\n#~ msgid \"\"\n#~ \"The B<last> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Der Befehl B<last> ist Teil des Pakets util-linux, welches \"\n#~ \"heruntergeladen werden kann von:\"\n\n#, no-wrap\n#~ msgid \"October 2013\"\n#~ msgstr \"Oktober 2013\"\n\n#, no-wrap\n#~ msgid \"util-linux\"\n#~ msgstr \"util-linux\"\n\n#, no-wrap\n#~ msgid \"B<-a>,B< --hostlast>\"\n#~ msgstr \"B<-a>,B< --hostlast>\"\n\n#~ msgid \"\"\n#~ \"Display the hostname in the last column.  Useful in combination with the \"\n#~ \"B<--dns> option.\"\n#~ msgstr \"\"\n#~ \"zeigt den Rechnernamen in der letzten Spalte an. Dies ist in Kombination \"\n#~ \"mit der Option B<--dns> nützlich.\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --dns>\"\n#~ msgstr \"B<-d>,B< --dns>\"\n\n#~ msgid \"\"\n#~ \"For non-local logins, Linux stores not only the host name of the remote \"\n#~ \"host, but its IP number as well.  This option translates the IP number \"\n#~ \"back into a hostname.\"\n#~ msgstr \"\"\n#~ \"übersetzt die IP-Nummer zurück in einen Rechnernamen. Bei nichtlokalen \"\n#~ \"Anmeldungen speichert Linux nicht nur den Namen des fernen Rechners, \"\n#~ \"sondern auch dessen IP-Nummer.\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --file >I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<Datei>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>.  The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"weist B<last> an, eine bestimmte I<Datei> anstelle von I</var/log/wtmp> \"\n#~ \"zu verwenden. Die Option B<--file> kann mehrfach angegeben werden, \"\n#~ \"wodurch alle angegebenen Dateien verarbeitet werden.\"\n\n#, no-wrap\n#~ msgid \"B<-F>,B< --fulltimes>\"\n#~ msgstr \"B<-F>,B< --fulltimes>\"\n\n#, no-wrap\n#~ msgid \"B<-i>,B< --ip>\"\n#~ msgstr \"B<-i>,B< --ip>\"\n\n# Müsste das nicht eigentlich IP-Adresse heißen?\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host's IP number instead of the name.\"\n#~ msgstr \"\"\n#~ \"wie B<--dns>, zeigt aber die IP-Adresse des Rechners anstelle des Namens \"\n#~ \"an.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgstr \"B<-n>,B< --limit >I<Zahl>\"\n\n#, no-wrap\n#~ msgid \"B<-p>,B< --present >I<time>\"\n#~ msgstr \"B<-p>,B< --present >I<Zeit>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time.  This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"zeigt die Benutzer an, die zur angegebenen Zeit angemeldet waren. Dies \"\n#~ \"entspricht der Verwendung der Optionen B<--since> und B<--until> zusammen \"\n#~ \"mit der gleichen I<Zeit>.\"\n\n#, no-wrap\n#~ msgid \"B<-R>,B< --nohostname>\"\n#~ msgstr \"B<-R>,B< --nohostname>\"\n\n#, no-wrap\n#~ msgid \"B<-s>,B< --since >I<time>\"\n#~ msgstr \"B<-s>,B< --since >I<Zeit>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --until >I<time>\"\n#~ msgstr \"B<-t>,B< --until >I<Zeit>\"\n\n#, no-wrap\n#~ msgid \"B<--time-format>I< format>\"\n#~ msgstr \"B<--time-format>I< Format>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>.  The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option.  The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format.  The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"definiert das I<Format> des Ausgabe-Zeitstempels, entweder I<notime>, \"\n#~ \"I<short>, I<full> oder I<iso>. Die Variante I<notime> gibt keinerlei \"\n#~ \"Zeitstempel aus, I<short> ist die Vorgabe, und I<full> ist \"\n#~ \"gleichbedeutend mit der Option B<--fulltimes>. Die Variante I<iso> zeigt \"\n#~ \"den Zeitstempel im ISO-8601-Format an. Das ISO-Format zeigt Informationen \"\n#~ \"zur Zeitzone an, wodurch es bevorzugt zum Einsatz kommt, wenn Ausgaben \"\n#~ \"außerhalb des Systems untersucht werden.\"\n\n#, no-wrap\n#~ msgid \"B<-w>,B< --fullnames>\"\n#~ msgstr \"B<-w>,B< --fullnames>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --system>\"\n#~ msgstr \"B<-x>,B< --system>\"\n\n#~ msgid \"\"\n#~ \"The files I<wtmp> and I<btmp> might not be found.  The system only logs \"\n#~ \"information in these files if they are present.  This is a local \"\n#~ \"configuration issue.  If you want the files to be used, they can be \"\n#~ \"created with a simple B<touch>(1)  command (for example, I<touch /var/log/\"\n#~ \"wtmp>).\"\n#~ msgstr \"\"\n#~ \"Die Dateien I<wtmp> und I<btmp> könnten nicht gefunden werden. Das System \"\n#~ \"protokolliert nur Informationen in diesen Dateien, wenn diese vorhanden \"\n#~ \"sind. Dies ist ein Problem der lokalen Konfiguration. Wenn Sie diese \"\n#~ \"Dateien verwenden wollen, können sie mit dem einfachen Befehl B<touch>(1) \"\n#~ \"angelegt werden (zum Beispiel I<touch /var/log/wtmp>).\"\n\n#~ msgid \"\"\n#~ \"The last command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Der Befehl last ist Teil des Pakets util-linux, welches aus dem E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> Linux \"\n#~ \"Kernel-Archiv E<.UE .> heruntergeladen werden kann.\"\n\n#~ msgid \"mesg - display (or do not display) messages from other users\"\n#~ msgstr \"mesg - Nachrichten von anderen Benutzern anzeigen (oder nicht)\"\n\n#~ msgid \"B<mesg> [I<option>] [B<n>|B<y>]\"\n#~ msgstr \"B<mesg> [I<Option>] [B<n>|B<y>]\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output. If \"\n#~ \"write access is allowed, then programs such as B<talk>(1) and B<write>(1) \"\n#~ \"may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"Das Dienstprogramm B<mesg> wird von einem Benutzer aufgerufen, um den \"\n#~ \"Schreibzugriff anderer auf das Terminal zu steuern, das mit der \"\n#~ \"Standardfehlerausgabe verknüpft ist. Falls der Schreibzugriff gestattet \"\n#~ \"wird, dann können Programme wie B<talk>(1) und B<write>(1) Nachrichten im \"\n#~ \"Terminal anzeigen.\"\n\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default. However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell. To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"Traditionell ist der Schreibzugriff standardmäßig erlaubt. Als jedoch \"\n#~ \"diverse Sicherheitsaspekte in das Bewusstsein der Benutzer rückten, ergab \"\n#~ \"sich der Trend, den Schreibzugriff standardmäßig zu unterbinden, \"\n#~ \"zumindest für die primäre Anmelde-Shell. Um sicherzustellen, dass Ihre \"\n#~ \"TTYs nach Ihren Wünschen gesetzt sind, sollte B<mesg> in Ihren \"\n#~ \"Anmeldeskripten ausgeführt werden.\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility silently exits with error status 2 if not executed on \"\n#~ \"terminal. In this case execute B<mesg> is pointless. The command line \"\n#~ \"option B<--verbose> forces mesg to print a warning in this situation. \"\n#~ \"This behaviour has been introduced in version 2.33.\"\n#~ msgstr \"\"\n#~ \"Das Dienstprogramm B<mesg> beendet sich stillschweigend mit dem \"\n#~ \"Fehlerstatus 2, falls sich die aktuelle Fehlerausgabe nicht auf ein \"\n#~ \"Terminal bezieht. In diesem Fall ist die Ausführung von B<mesg> sinnlos. \"\n#~ \"Die Befehlszeilenoption B<--verbose> erzwingt, dass Mesg eine Warnung in \"\n#~ \"diesem Fall ausgibt. Dieses Verhalten wurde in Version 2.33 hinzugefügt.\"\n\n#, no-wrap\n#~ msgid \"ARGUMENTS\"\n#~ msgstr \"ARGUMENTE\"\n\n#~ msgid \"Disallow messages.\"\n#~ msgstr \"unterbindet Nachrichten.\"\n\n#~ msgid \"Allow messages to be displayed.\"\n#~ msgstr \"erlaubt die Anzeige von Nachrichten.\"\n\n#~ msgid \"B<-v>, B<--verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#~ msgid \"Explain what is being done.\"\n#~ msgstr \"erklärt, was geschieht.\"\n\n#, no-wrap\n#~ msgid \"B<-V>, B<--version>\"\n#~ msgstr \"B<-V>, B<--version>\"\n\n#~ msgid \"Display version information and exit.\"\n#~ msgstr \"zeigt Versionsinformationen an und beendet das Programm.\"\n\n#, no-wrap\n#~ msgid \"B<-h>, B<--help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#~ msgid \"Display help text and exit.\"\n#~ msgstr \"zeigt einen Hilfetext an und beendet das Programm.\"\n\n#~ msgid \"The B<mesg> utility exits with one of the following values:\"\n#~ msgstr \"Das Dienstprogramm B<mesg> gibt die folgenden Rückgabewerte aus:\"\n\n#~ msgid \"Messages are allowed.\"\n#~ msgstr \"Nachrichten sind erlaubt.\"\n\n#, no-wrap\n#~ msgid \"B<E<gt>1>\"\n#~ msgstr \"B<E<gt>1>\"\n\n#~ msgid \"An error has occurred.\"\n#~ msgstr \"Ein Fehler ist aufgetreten.\"\n\n#~ msgid \"I</dev/[pt]ty[pq]?>\"\n#~ msgstr \"I</dev/[pt]ty[pq]?>\"\n\n#, no-wrap\n#~ msgid \"HISTORY\"\n#~ msgstr \"GESCHICHTE\"\n\n#~ msgid \"A B<mesg> command appeared in Version 6 AT&T UNIX.\"\n#~ msgstr \"Ein B<mesg>-Befehl erschien in Version 6 von AT&T UNIX.\"\n\n#~ msgid \"B<login>(1), B<talk>(1), B<write>(1), B<wall>(1), B<xterm>(1)\"\n#~ msgstr \"B<login>(1), B<talk>(1), B<write>(1), B<wall>(1), B<xterm>(1)\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Der Befehl B<mesg> ist Teil des Pakets util-linux, welches \"\n#~ \"heruntergeladen werden kann von:\"\n\n#, no-wrap\n#~ msgid \"July 2014\"\n#~ msgstr \"Juli 2014\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output.  If \"\n#~ \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~ \"B<write>(1)  may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"Das Dienstprogramm B<mesg> wird von einem Benutzer aufgerufen, um den \"\n#~ \"Schreibzugriff anderer auf das Terminal zu steuern, das mit der \"\n#~ \"Standardfehlerausgabe verknüpft ist. Falls der Schreibzugriff gestattet \"\n#~ \"wird, dann können Programme wie B<talk>(1) und B<write>(1) Nachrichten im \"\n#~ \"Terminal anzeigen.\"\n\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default.  However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell.  To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"Traditionell ist der Schreibzugriff standardmäßig erlaubt. Als jedoch \"\n#~ \"diverse Sicherheitsaspekte in das Bewusstsein der Benutzer rückten, ergab \"\n#~ \"sich der Trend, den Schreibzugriff standardmäßig zu unterbinden, \"\n#~ \"zumindest für die primäre Anmelde-Shell. Um sicherzustellen, dass Ihre \"\n#~ \"TTYs nach Ihren Wünschen gesetzt sind, sollte B<mesg> in Ihren \"\n#~ \"Anmeldeskripten ausgeführt werden.\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility silently exits with error status 2 if not executed on \"\n#~ \"terminal.  In this case execute B<mesg> is pointless.  The command line \"\n#~ \"option B<--verbose> forces mesg to print a warning in this situation.  \"\n#~ \"This behaviour has been introduced in version 2.33.\"\n#~ msgstr \"\"\n#~ \"Das Dienstprogramm B<mesg> beendet sich stillschweigend mit dem \"\n#~ \"Fehlerstatus 2, falls sich die aktuelle Fehlerausgabe nicht auf ein \"\n#~ \"Terminal bezieht. In diesem Fall ist die Ausführung von B<mesg> sinnlos. \"\n#~ \"Die Befehlszeilenoption B<--verbose> erzwingt, dass Mesg eine Warnung in \"\n#~ \"diesem Fall ausgibt. Dieses Verhalten wurde in Version 2.33 hinzugefügt.\"\n\n#, no-wrap\n#~ msgid \"B<-v>,B< --verbose>\"\n#~ msgstr \"B<-v>,B< --verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-V>,B< --version>\"\n#~ msgstr \"B<-V>,B< --version>\"\n\n#, no-wrap\n#~ msgid \"B<-h>,B< --help>\"\n#~ msgstr \"B<-h>,B< --help>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 0>\"\n#~ msgstr \"B<\\\\ 0>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 1>\"\n#~ msgstr \"B<\\\\ 1>\"\n\n#~ msgid \"\"\n#~ \"The mesg command is part of the util-linux package and is available from \"\n#~ \"https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgstr \"\"\n#~ \"Der Befehl »mesg« ist Teil des Pakets util-linux, welches auf https://www.\"\n#~ \"kernel.org/pub/linux/utils/util-linux/ verfügbar ist.\"\n\n#~ msgid \"\"\n#~ \"B<mountpoint> checks whether the given I<directory> or I<file> is \"\n#~ \"mentioned in the I</proc/self/mountinfo> file.\"\n#~ msgstr \"\"\n#~ \"B<mountpoint> überprüft, ob das angegebene I<Verzeichnis> oder die \"\n#~ \"angegebene I<Datei> in der Datei I</proc/self/mountinfo> aufgeführt ist.\"\n\n#~ msgid \"B<-d>, B<--fs-devno>\"\n#~ msgstr \"B<-d>, B<--fs-devno>\"\n\n#~ msgid \"\"\n#~ \"Show the major/minor numbers of the device that is mounted on the given \"\n#~ \"directory.\"\n#~ msgstr \"\"\n#~ \"zeigt die Major/Minor-Nummern des Geräts an, das in dem angegebenen \"\n#~ \"Verzeichnis eingehängt ist.\"\n\n#~ msgid \"B<-q>, B<--quiet>\"\n#~ msgstr \"B<-q>, B<--quiet>\"\n\n#~ msgid \"Be quiet - don\\\\(cqt print anything.\"\n#~ msgstr \"unterdrückt die Ausgaben.\"\n\n#, no-wrap\n#~ msgid \"B<--nofollow>\"\n#~ msgstr \"B<--nofollow>\"\n\n#~ msgid \"\"\n#~ \"Do not follow symbolic link if it the last element of the I<directory> \"\n#~ \"path.\"\n#~ msgstr \"\"\n#~ \"folgt keinem symbolischen Link, wenn er das letzte Element in einem \"\n#~ \"I<Verzeichnis>-Pfad ist.\"\n\n#~ msgid \"B<-x>, B<--devno>\"\n#~ msgstr \"B<-x>, B<--devno>\"\n\n#~ msgid \"B<mountpoint> has the following exit status values:\"\n#~ msgstr \"B<mountpoint> hat die folgenden Exit-Status-Werte:\"\n\n#~ msgid \"\"\n#~ \"success; the directory is a mountpoint, or device is block device on B<--\"\n#~ \"devno>\"\n#~ msgstr \"\"\n#~ \"Erfolg; das Verzeichnis ist ein Einhängepunkt, oder das Gerät ist ein \"\n#~ \"Blockgerät (mit B<--devno>)\"\n\n#~ msgid \"failure; incorrect invocation, permissions or system error\"\n#~ msgstr \"Fehlschlag; fehlerhafter Aufruf, Zugriffsrechte- oder Systemfehler\"\n\n#~ msgid \"B<32>\"\n#~ msgstr \"B<32>\"\n\n#~ msgid \"\"\n#~ \"failure; the directory is not a mountpoint, or device is not a block \"\n#~ \"device on B<--devno>\"\n#~ msgstr \"\"\n#~ \"Fehlschlag; das Verzeichnis ist kein Einhängepunkt, oder das Gerät ist \"\n#~ \"kein Blockgerät (mit B<--devno>)\"\n\n#, no-wrap\n#~ msgid \"LIBMOUNT_DEBUG=all\"\n#~ msgstr \"LIBMOUNT_DEBUG=all\"\n\n#~ msgid \"enables libmount debug output.\"\n#~ msgstr \"aktiviert die Fehlersuchausgabe für libmount.\"\n\n#~ msgid \"\"\n#~ \"The util-linux B<mountpoint> implementation was written from scratch for \"\n#~ \"libmount. The original version for sysvinit suite was written by Miquel \"\n#~ \"van Smoorenburg.\"\n#~ msgstr \"\"\n#~ \"Die B<mountpoint>-Implementation von Util-linux wurde für Libmount von \"\n#~ \"Grund auf neu geschrieben. Die Originalversion für die SysVinit-Suite \"\n#~ \"wurde von Miquel van Smoorenburg geschrieben.\"\n\n#~ msgid \"B<mount>(8)\"\n#~ msgstr \"B<mount>(8)\"\n\n#~ msgid \"\"\n#~ \"The B<mountpoint> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Der Befehl B<mountpoint> ist Teil des Pakets util-linux, welches \"\n#~ \"heruntergeladen werden kann von:\"\n\n#, no-wrap\n#~ msgid \"August 2019\"\n#~ msgstr \"August 2019\"\n\n#~ msgid \"B<mountpoint> [B<-d>|B<-q>] I<directory> | I<file>\"\n#~ msgstr \"B<mountpoint> [B<-d>|B<-q>] I<Verzeichnis> | I<Datei>\"\n\n#~ msgid \"\"\n#~ \"B<mountpoint> checks whether the given I<directory> or I<file> is \"\n#~ \"mentioned in the /proc/self/mountinfo file.\"\n#~ msgstr \"\"\n#~ \"B<mountpoint> überprüft, ob das angegebene I<Verzeichnis> oder die \"\n#~ \"angegebene I<Datei> in der Datei /proc/self/mountinfo aufgeführt ist.\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --fs-devno>\"\n#~ msgstr \"B<-d>,B< --fs-devno>\"\n\n#, no-wrap\n#~ msgid \"B<-q>,B< --quiet>\"\n#~ msgstr \"B<-q>,B< --quiet>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --devno>\"\n#~ msgstr \"B<-x>,B< --devno>\"\n\n#~ msgid \"\"\n#~ \"The util-linux B<mountpoint> implementation was written from scratch for \"\n#~ \"libmount.  The original version for sysvinit suite was written by Miquel \"\n#~ \"van Smoorenburg.\"\n#~ msgstr \"\"\n#~ \"Die B<mountpoint>-Implementation von Util-linux wurde für Libmount von \"\n#~ \"Grund auf neu geschrieben. Die Originalversion für die SysVinit-Suite \"\n#~ \"wurde von Miquel van Smoorenburg geschrieben.\"\n\n#~ msgid \"Karel Zak E<lt>kzak@redhat.comE<gt>\"\n#~ msgstr \"Karel Zak E<lt>kzak@redhat.comE<gt>\"\n\n#~ msgid \"\"\n#~ \"The mountpoint command is part of the util-linux package and is available \"\n#~ \"from https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgstr \"\"\n#~ \"Der Befehl mountpoint ist Teil des Pakets util-linux, welches auf https://\"\n#~ \"www.kernel.org/pub/linux/utils/util-linux/ verfügbar ist.\"\n\n#, no-wrap\n#~ msgid \"runlevel\"\n#~ msgstr \"runlevel\"\n\n#, no-wrap\n#~ msgid \"OVERVIEW\"\n#~ msgstr \"ÜBERBLICK\"\n\n#~ msgid \"\"\n#~ \"\\\"Runlevels\\\" are an obsolete way to start and stop groups of services \"\n#~ \"used in SysV init\\\\&. systemd provides a compatibility layer that maps \"\n#~ \"runlevels to targets, and associated binaries like B<runlevel>\\\\&. \"\n#~ \"Nevertheless, only one runlevel can be \\\"active\\\" at a given time, while \"\n#~ \"systemd can activate multiple targets concurrently, so the mapping to \"\n#~ \"runlevels is confusing and only approximate\\\\&. Runlevels should not be \"\n#~ \"used in new code, and are mostly useful as a shorthand way to refer the \"\n#~ \"matching systemd targets in kernel boot parameters\\\\&.\"\n#~ msgstr \"\"\n#~ \"»Runlevel« sind eine veraltete, in SysV-Init verwandte Art, Gruppen von \"\n#~ \"Diensten zu starten und zu stoppen\\\\&. Systemd stellt eine \"\n#~ \"Kompatibilitätsschicht bereit, die Runlevel auf Ziele abbildet, sowie \"\n#~ \"zugehörige Programme wie B<runlevel>\\\\&. Nichtsdestotrotz kann zu einem \"\n#~ \"gegebenen Zeitpunkt immer nur ein Runlevel »aktiv« sein, während Systemd \"\n#~ \"mehrere Ziele gleichzeitig aktivieren kann, daher ist die Abbildung von \"\n#~ \"Runlevel irritierend und nur ungefähr\\\\&. In neuem Code sollten Runlevel \"\n#~ \"nicht mehr verwandt werden und sind hauptsächlich als Abkürzung zur \"\n#~ \"Referenz auf die entsprechenden Systemd-Ziele bei Kernel-Boot-Parametern \"\n#~ \"nützlich\\\\&.\"\n\n#~ msgid \"B<Table\\\\ \\\\&1.\\\\ \\\\&Mapping between runlevels and systemd targets>\"\n#~ msgstr \"\"\n#~ \"B<Tabelle\\\\ \\\\&1.\\\\ \\\\&Abbildung zwischen Runleveln und Systemd-Zielen>\"\n\n#, no-wrap\n#~ msgid \"Runlevel\"\n#~ msgstr \"Runlevel\"\n\n#, no-wrap\n#~ msgid \"Target\"\n#~ msgstr \"Ziel\"\n\n#, no-wrap\n#~ msgid \".T&\"\n#~ msgstr \".T&\"\n\n#, no-wrap\n#~ msgid \"l l\"\n#~ msgstr \"l l\"\n\n#, no-wrap\n#~ msgid \"l l.\"\n#~ msgstr \"l l.\"\n\n#, no-wrap\n#~ msgid \"0\"\n#~ msgstr \"0\"\n\n#, no-wrap\n#~ msgid \"poweroff\\\\&.target\"\n#~ msgstr \"poweroff\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"rescue\\\\&.target\"\n#~ msgstr \"rescue\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"2, 3, 4\"\n#~ msgstr \"2, 3, 4\"\n\n#, no-wrap\n#~ msgid \"multi-user\\\\&.target\"\n#~ msgstr \"multi-user\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"5\"\n#~ msgstr \"5\"\n\n#, no-wrap\n#~ msgid \"graphical\\\\&.target\"\n#~ msgstr \"graphical\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"6\"\n#~ msgstr \"6\"\n\n#, no-wrap\n#~ msgid \"reboot\\\\&.target\"\n#~ msgstr \"reboot\\\\&.target\"\n\n#~ msgid \"\"\n#~ \"B<runlevel> prints the previous and current SysV runlevel if they are \"\n#~ \"known\\\\&.\"\n#~ msgstr \"\"\n#~ \"runlevel - gibt den vorhergehenden und aktuellen SysV-Runlevel aus, falls \"\n#~ \"bekannt\"\n\n#~ msgid \"\"\n#~ \"The two runlevel characters are separated by a single space character\\\\&. \"\n#~ \"If a runlevel cannot be determined, N is printed instead\\\\&. If neither \"\n#~ \"can be determined, the word \\\"unknown\\\" is printed\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die zwei Runlevelzeichen werden durch ein einzelnes Leerzeichen getrennt\"\n#~ \"\\\\&. Falls ein Runlevel nicht bestimmt werden kann, wird N stattdessen \"\n#~ \"ausgegeben\\\\&. Falls keiner bestimmt werden kann, wird das Wort »unknown« \"\n#~ \"ausgegeben\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Unless overridden in the environment, this will check the utmp database \"\n#~ \"for recent runlevel changes\\\\&.\"\n#~ msgstr \"\"\n#~ \"Dies wird die Utmp-Datenbank für kürzliche Runlevel-Änderungen prüfen, \"\n#~ \"außer dies ist in der Umgebung außer Kraft gesetzt\\\\&.\"\n\n#~ msgid \"The following option is understood:\"\n#~ msgstr \"Die folgende Option wird verstanden:\"\n\n#~ msgid \"\"\n#~ \"If one or both runlevels could be determined, 0 is returned, a non-zero \"\n#~ \"failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"Falls einer oder beide Runlevel bestimmt werden konnten, wird 0 \"\n#~ \"zurückgegeben, anderenfalls ein Fehlercode ungleich Null\\\\&.\"\n\n#~ msgid \"I<$RUNLEVEL>\"\n#~ msgstr \"I<$RUNLEVEL>\"\n\n#~ msgid \"\"\n#~ \"If I<$RUNLEVEL> is set, B<runlevel> will print this value as current \"\n#~ \"runlevel and ignore utmp\\\\&.\"\n#~ msgstr \"\"\n#~ \"Falls I<$RUNLEVEL> gesetzt ist, wird B<runlevel> diesen Wert als \"\n#~ \"aktuellen Runlevel ausgeben und Utmp ignorieren\\\\&.\"\n\n#~ msgid \"I<$PREVLEVEL>\"\n#~ msgstr \"I<$PREVLEVEL>\"\n\n#~ msgid \"\"\n#~ \"If I<$PREVLEVEL> is set, B<runlevel> will print this value as previous \"\n#~ \"runlevel and ignore utmp\\\\&.\"\n#~ msgstr \"\"\n#~ \"Falls I<$RUNLEVEL> gesetzt ist, wird B<runlevel> diesen Wert als \"\n#~ \"vorherigen Runlevel ausgeben und Utmp ignorieren\\\\&.\"\n\n#~ msgid \"/run/utmp\"\n#~ msgstr \"/run/utmp\"\n\n#~ msgid \"\"\n#~ \"The utmp database B<runlevel> reads the previous and current runlevel from\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die Utmp-Datenbank, aus der B<runlevel> den vorherigen und aktuellen \"\n#~ \"Runlevel ausliest\\\\&.\"\n\n#~ msgid \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n\n#~ msgid \"shutdown - Halt, power-off or reboot the machine\"\n#~ msgstr \"shutdown - Die Maschine anhalten, ausschalten oder neustarten\"\n\n#~ msgid \"B<shutdown> [OPTIONS...] [TIME] [WALL...]\"\n#~ msgstr \"B<shutdown> [OPTIONEN…] [ZEIT] [WALL…]\"\n\n#~ msgid \"B<shutdown> may be used to halt, power-off or reboot the machine\\\\&.\"\n#~ msgstr \"\"\n#~ \"B<shutdown> kann zum Anhalten, Herunterfahren oder Neustarten der \"\n#~ \"Maschine verwandt werden\\\\&.\"\n\n#~ msgid \"\"\n#~ \"The first argument may be a time string (which is usually \\\"now\\\")\\\\&. \"\n#~ \"Optionally, this may be followed by a wall message to be sent to all \"\n#~ \"logged-in users before going down\\\\&.\"\n#~ msgstr \"\"\n#~ \"Das erste Argument kann eine Zeitzeichenkette sein (normalerweise \"\n#~ \"»now«)\\\\&. Optional kann diese eine Wall-Nachricht sein, die vor dem \"\n#~ \"Herunterfahren an alle angemeldeten Benutzer versandt wird\\\\&.\"\n\n#~ msgid \"\"\n#~ \"The time string may either be in the format \\\"hh:mm\\\" for hour/minutes \"\n#~ \"specifying the time to execute the shutdown at, specified in 24h clock \"\n#~ \"format\\\\&. Alternatively it may be in the syntax \\\"+m\\\" referring to the \"\n#~ \"specified number of minutes m from now\\\\&.  \\\"now\\\" is an alias for \"\n#~ \"\\\"+0\\\", i\\\\&.e\\\\&. for triggering an immediate shutdown\\\\&. If no time \"\n#~ \"argument is specified, \\\"+1\\\" is implied\\\\&.\"\n#~ msgstr \"\"\n#~ \"Die Zeitzeichenkette kann entweder im Format »hh:mm« für Stunden/Minuten \"\n#~ \"sein, die die Zeit (im 24-Stunden-Format) der Ausführung des \"\n#~ \"Herunterfahrens festlegt\\\\&. Alternativ kann sie in der Syntax »+m« \"\n#~ \"vorliegen, die sich auf die festgelegte Anzahl »m« an Minuten von jetzt \"\n#~ \"an bezieht\\\\&. »now« ist ein Alias für »+0«, d\\\\&.h\\\\. für das Auslösen \"\n#~ \"eines sofortigen Herunterfahrens\\\\&. Falls kein Zeitargument festgelegt \"\n#~ \"ist, wird »+1« angenommen\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Note that to specify a wall message you must specify a time argument, too\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Beachten Sie, dass Sie für die Angabe einer Wall-Nachricht auch ein \"\n#~ \"Zeitargument angeben müssen\\\\&.\"\n\n#~ msgid \"\"\n#~ \"If the time argument is used, 5 minutes before the system goes down the /\"\n#~ \"run/nologin file is created to ensure that further logins shall not be \"\n#~ \"allowed\\\\&.\"\n#~ msgstr \"\"\n#~ \"Falls ein Zeitargument verwandt wird, wird 5 Minuten bevor das System \"\n#~ \"heruntergefahren  wird, die Datei /run/nologin erstellt, um \"\n#~ \"sicherzustellen, dass weitere Anmeldungen nicht erlaubt werden\\\\&.\"\n\n#~ msgid \"B<-H>, B<--halt>\"\n#~ msgstr \"B<-H>, B<--halt>\"\n\n#~ msgid \"Halt the machine\\\\&.\"\n#~ msgstr \"Die Maschine anhalten\\\\&.\"\n\n#~ msgid \"B<-P>, B<--poweroff>\"\n#~ msgstr \"B<-P>, B<--poweroff>\"\n\n#~ msgid \"Power-off the machine (the default)\\\\&.\"\n#~ msgstr \"Die Maschine ausschalten (die Vorgabe)\\\\&.\"\n\n#~ msgid \"B<-r>, B<--reboot>\"\n#~ msgstr \"B<-r>, B<--reboot>\"\n\n#~ msgid \"Equivalent to B<--poweroff>, unless B<--halt> is specified\\\\&.\"\n#~ msgstr \"Äquivalent zu B<--poweroff>, außer B<--halt> is angegeben\\\\&.\"\n\n#~ msgid \"Do not halt, power-off, reboot, just write wall message\\\\&.\"\n#~ msgstr \"\"\n#~ \"Nicht anhalten, ausschalten oder neustarten, nur die Wall-Nachricht \"\n#~ \"schreiben\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Cancel a pending shutdown\\\\&. This may be used to cancel the effect of an \"\n#~ \"invocation of B<shutdown> with a time argument that is not \\\"+0\\\" or \\\"now\"\n#~ \"\\\"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Anhängende Herunterfahraktionen abbrechen\\\\&. Dies kann dazu verwandt \"\n#~ \"werden, die Wirkung eines Aufrufs von B<shutdown> mit einem Zeitargument, \"\n#~ \"das nicht »+0« oder »now« ist, aufzuheben\\\\&.\"\n\n#, fuzzy\n#~| msgid \"B<--shadow>\"\n#~ msgid \"B<--show>\"\n#~ msgstr \"B<--shadow>\"\n\n#, no-wrap\n#~ msgid \"System Administration\"\n#~ msgstr \"System-Administration\"\n\n#~ msgid \"B<sulogin> [options] [I<tty>]\"\n#~ msgstr \"B<sulogin> [Optionen] [I<TTY>]\"\n\n#~ msgid \"\"\n#~ \"B<sulogin> is invoked by B<init> when the system goes into single-user \"\n#~ \"mode.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> wird von B<init> aufgerufen, wenn das System in den \"\n#~ \"Einzelbenutzermodus (single user mode) wechselt.\"\n\n#~ msgid \"\"\n#~ \"Give root password for system maintenance (or type Control-D for normal \"\n#~ \"startup):\"\n#~ msgstr \"\"\n#~ \"Administratorpasswort für Wartungszwecke eingeben (oder drücken Sie Strg\"\n#~ \"+D, um fortzufahren):\"\n\n#~ msgid \"\"\n#~ \"If the root account is locked and B<--force> is specified, no password is \"\n#~ \"required.\"\n#~ msgstr \"\"\n#~ \"Wenn das Root-Benutzerkonto gesperrt ist und B<--force> angegeben wird, \"\n#~ \"ist keine Passworteingabe erforderlich.\"\n\n#, no-wrap\n#~ msgid \"B<-e>, B<--force>\"\n#~ msgstr \"B<-e>, B<--force>\"\n\n#~ msgid \"\"\n#~ \"If the default method of obtaining the root password from the system via \"\n#~ \"B<getpwnam>(3) fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~ \"get the password. If these files are damaged or nonexistent, or when root \"\n#~ \"account is locked by \\\\(aq!\\\\(aq or \\\\(aq*\\\\(aq at the begin of the \"\n#~ \"password then B<sulogin> will B<start a root shell without asking for a \"\n#~ \"password>.\"\n#~ msgstr \"\"\n#~ \"untersucht I</etc/passwd> und I</etc/shadow>, um das Passwort zu \"\n#~ \"ermitteln, falls die Standardmethode zum Ermitteln des Passworts aus dem \"\n#~ \"System mittels B<getpwnam>(3) fehlschlägt. Wenn diese Dateien beschädigt \"\n#~ \"oder nicht vorhanden sind oder wenn das Root-Benutzerkonto durch »!« oder \"\n#~ \"»*« am Anfang des Passworts gesperrt ist, dann startet B<sulogin> eine \"\n#~ \"B<Root-Shell, ohne nach einem Passwort zu fragen>.\"\n\n#, no-wrap\n#~ msgid \"B<-p>, B<--login-shell>\"\n#~ msgstr \"B<-p>, B<--login-shell>\"\n\n#~ msgid \"\"\n#~ \"Specifying this option causes B<sulogin> to start the shell process as a \"\n#~ \"login shell.\"\n#~ msgstr \"\"\n#~ \"bewirkt, dass B<sulogin> den Shell-Prozess als Anmelde-Shell startet.\"\n\n#~ msgid \"B<-t>, B<--timeout> I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout> I<Sekunden>\"\n\n#~ msgid \"\"\n#~ \"Specify the maximum amount of time to wait for user input. By default, \"\n#~ \"B<sulogin> will wait forever.\"\n#~ msgstr \"\"\n#~ \"gibt die maximale Zeitspanne an, die auf Benutzereingaben gewartet werden \"\n#~ \"soll. Standardmäßig wartet B<sulogin> unbegrenzte Zeit.\"\n\n#~ msgid \"\"\n#~ \"B<sulogin> was written by Miquel van Smoorenburg for sysvinit and later \"\n#~ \"ported to util-linux by Dave Reisner and Karel Zak.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> wurde für SysVinit von Miquel van Smoorenburg geschrieben und \"\n#~ \"später von Dave Reisner und Karel Zak auf util-linux portiert.\"\n\n#~ msgid \"\"\n#~ \"The B<sulogin> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Der Befehl B<sulogin> ist Teil des Pakets util-linux, welches \"\n#~ \"heruntergeladen werden kann von:\"\n\n#~ msgid \"\"\n#~ \"If the root account is locked and --force is specified, no password is \"\n#~ \"required.\"\n#~ msgstr \"\"\n#~ \"Wenn das Root-Benutzerkonto gesperrt ist und --force angegeben wird, ist \"\n#~ \"keine Passworteingabe erforderlich.\"\n\n#~ msgid \"\"\n#~ \"If the default method of obtaining the root password from the system via \"\n#~ \"B<getpwnam>(3)  fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~ \"get the password.  If these files are damaged or nonexistent, or when \"\n#~ \"root account is locked by '!' or '*' at the begin of the password then \"\n#~ \"B<sulogin> will B<start a root shell without asking for a password>.\"\n#~ msgstr \"\"\n#~ \"untersucht I</etc/passwd> und I</etc/shadow>, um das Passwort zu \"\n#~ \"ermitteln, falls die Standardmethode zum Ermitteln des Passworts aus dem \"\n#~ \"System mittels B<getpwnam>(3) fehlschlägt. Wenn diese Dateien beschädigt \"\n#~ \"oder nicht vorhanden sind oder wenn das Root-Benutzerkonto durch »!« oder \"\n#~ \"»*« am Anfang des Passworts gesperrt ist, dann startet B<sulogin> eine \"\n#~ \"B<Root-Shell, ohne nach einem Passwort zu fragen>.\"\n\n#, no-wrap\n#~ msgid \"B<-t>, B<--timeout >I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout >I<Sekunden>\"\n\n#~ msgid \"\"\n#~ \"Specify the maximum amount of time to wait for user input.  By default, \"\n#~ \"B<sulogin> will wait forever.\"\n#~ msgstr \"\"\n#~ \"gibt die maximale Zeitspanne an, die auf Benutzereingaben gewartet werden \"\n#~ \"soll. Standardmäßig wartet B<sulogin> unbegrenzte Zeit.\"\n\n#~ msgid \"\"\n#~ \"The sulogin command is part of the util-linux package and is available \"\n#~ \"from E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Der Befehl »sulogin« ist Teil des Pakets util-linux, welches aus dem E<.\"\n#~ \"UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel-Archiv E<.UE .> heruntergeladen werden kann.\"\n\n#, no-wrap\n#~ msgid \"telinit\"\n#~ msgstr \"telinit\"\n\n#~ msgid \"telinit - Change SysV runlevel\"\n#~ msgstr \"telinit - SysV-Runlevel ändern\"\n\n#~ msgid \"B<telinit >B<[OPTIONS...]>B< >B<{COMMAND}>\"\n#~ msgstr \"B<telinit >B<[OPTIONEN…]>B< >B<{BEFEHL}>\"\n\n#~ msgid \"\"\n#~ \"B<telinit> may be used to change the SysV system runlevel\\\\&. Since the \"\n#~ \"concept of SysV runlevels is obsolete the runlevel requests will be \"\n#~ \"transparently translated into systemd unit activation requests\\\\&.\"\n#~ msgstr \"\"\n#~ \"B<telinit> kann zum Ändern des SysV-System-Runlevels verwandt werden\\\\&. \"\n#~ \"Da das Konzept der SysV-Runlevel veraltet ist, wird die Runlevel-Anfrage \"\n#~ \"transparent in eine Systemd-Unit-Aktivierungsanfrage übersetzt\\\\&.\"\n\n#~ msgid \"Do not send wall message before reboot/halt/power-off\\\\&.\"\n#~ msgstr \"\"\n#~ \"Es werden keine Wall-Nachrichten vor dem Neustart/Anhalten/Ausschalten \"\n#~ \"versandt\\\\&.\"\n\n#~ msgid \"The following commands are understood:\"\n#~ msgstr \"Die folgenden Befehle werden verstanden:\"\n\n#~ msgid \"\"\n#~ \"Power-off the machine\\\\&. This is translated into an activation request \"\n#~ \"for poweroff\\\\&.target and is equivalent to B<systemctl poweroff>\\\\&.\"\n#~ msgstr \"\"\n#~ \"Schaltet die Maschine aus\\\\&. Dies wird in eine Aktivierungsanfrage für \"\n#~ \"poweroff\\\\&.target übersetzt und ist äquivalent zu B<systemctl poweroff>\"\n#~ \"\\\\&.\"\n\n#~ msgid \"B<6>\"\n#~ msgstr \"B<6>\"\n\n#~ msgid \"\"\n#~ \"Reboot the machine\\\\&. This is translated into an activation request for \"\n#~ \"reboot\\\\&.target and is equivalent to B<systemctl reboot>\\\\&.\"\n#~ msgstr \"\"\n#~ \"Startet die Maschine neu\\\\&. Diese wird in eine Aktivierungsanfrage für \"\n#~ \"reboot\\\\&.target übersetzt und ist äquivalent zu B<systemctl reboot>\\\\&.\"\n\n#~ msgid \"B<2>, B<3>, B<4>, B<5>\"\n#~ msgstr \"B<2>, B<3>, B<4>, B<5>\"\n\n#~ msgid \"\"\n#~ \"Change the SysV runlevel\\\\&. This is translated into an activation \"\n#~ \"request for runlevel2\\\\&.target, runlevel3\\\\&.target, \\\\&... and is \"\n#~ \"equivalent to B<systemctl isolate runlevel2\\\\&.target>, B<systemctl \"\n#~ \"isolate runlevel3\\\\&.target>, \\\\&...\"\n#~ msgstr \"\"\n#~ \"Ändert den SysV-Runlevel\\\\&. Diese wird in eine Aktivierungsanfrage für \"\n#~ \"runlevel2\\\\&.target, runlevel3\\\\&.target, … übersetzt und ist äquivalent \"\n#~ \"zu B<systemctl isolate runlevel2\\\\&.target>, B<systemctl isolate \"\n#~ \"runlevel3\\\\&.target>, …\"\n\n#~ msgid \"B<1>, B<s>, B<S>\"\n#~ msgstr \"B<1>, B<s>, B<S>\"\n\n#~ msgid \"\"\n#~ \"Change into system rescue mode\\\\&. This is translated into an activation \"\n#~ \"request for rescue\\\\&.target and is equivalent to B<systemctl rescue>\\\\&.\"\n#~ msgstr \"\"\n#~ \"Wechselt in den Systemrettungsmodus\\\\&. Diese wird in eine \"\n#~ \"Aktivierungsanfrage für rescue\\\\&.target übersetzt und ist äquivalent zu \"\n#~ \"B<systemctl rescue>\\\\&.\"\n\n#~ msgid \"B<q>, B<Q>\"\n#~ msgstr \"B<q>, B<Q>\"\n\n#~ msgid \"\"\n#~ \"Reload daemon configuration\\\\&. This is equivalent to B<systemctl daemon-\"\n#~ \"reload>\\\\&.\"\n#~ msgstr \"\"\n#~ \"Lädt die Daemon-Konfiguration neu\\\\&. Diese ist äquivalent zu B<systemctl \"\n#~ \"daemon-reload>\\\\&.\"\n\n#~ msgid \"B<u>, B<U>\"\n#~ msgstr \"B<u>, B<U>\"\n\n#~ msgid \"\"\n#~ \"Serialize state, reexecute daemon and deserialize state again\\\\&. This is \"\n#~ \"equivalent to B<systemctl daemon-reexec>\\\\&.\"\n#~ msgstr \"\"\n#~ \"Serialisiert den Zustand, führt den Daemon neu aus und deserialisiert den \"\n#~ \"Zustand wieder\\\\&. Diese ist äquivalent zu B<systemctl daemon-reexec>\\\\&.\"\n\n#~ msgid \"\"\n#~ \"This is a legacy command available for compatibility only\\\\&. It should \"\n#~ \"not be used anymore, as the concept of runlevels is obsolete\\\\&.\"\n#~ msgstr \"\"\n#~ \"Dies ist ein veralteter und nur aus Kompatibilitätsgründen verfügbarer \"\n#~ \"Befehl\\\\&. Er sollte nicht mehr verwandt werden, da das Konzept der \"\n#~ \"Runlevel veraltet ist\\\\&.\"\n\n#~ msgid \"B<-f>, B<--follow>\"\n#~ msgstr \"B<-f>, B<--follow>\"\n\n#~ msgid \"Write command output to I<file> instead of standard output.\"\n#~ msgstr \"schreibt das Ergebnis in I<Datei> statt in die Standardausgabe.\"\n\n#~ msgid \"B<-r>, B<--reverse>\"\n#~ msgstr \"B<-r>, B<--reverse>\"\n\n#~ msgid \"\"\n#~ \"B<utmpdump> can be useful in cases of corrupted utmp or wtmp entries. It \"\n#~ \"can dump out utmp/wtmp to an ASCII file, which can then be edited to \"\n#~ \"remove bogus entries, and reintegrated using:\"\n#~ msgstr \"\"\n#~ \"B<utmpdump> kann im Falle beschädigter UTMP- oder WTMP-Einträge hilfreich \"\n#~ \"sein. Es kann die Daten in eine ASCII-Datei ausgeben, die Sie bearbeiten \"\n#~ \"können, um die falschen Einträge zu entfernen. Folgender Befehl führt \"\n#~ \"dies aus:\"\n\n#~ msgid \"\"\n#~ \"Only the binary version of the B<utmp>(5) is standardised. Textual dumps \"\n#~ \"may become incompatible in future.\"\n#~ msgstr \"\"\n#~ \"Nur die binäre Version von B<utmp>(5) ist standardisiert. Auszüge in \"\n#~ \"Textform können in der Zukunft inkompatibel werden.\"\n\n#~ msgid \"\"\n#~ \"The version 2.28 was the last one that printed text output using \"\n#~ \"B<ctime>(3) timestamp format. Newer dumps use millisecond precision \"\n#~ \"ISO-8601 timestamp format in UTC-0 timezone. Conversion from former \"\n#~ \"timestamp format can be made to binary, although attempt to do so can \"\n#~ \"lead the timestamps to drift amount of timezone offset.\"\n#~ msgstr \"\"\n#~ \"Die Version 2.28 war die letzte, die die Textausgabe mittels des \"\n#~ \"Zeitstempelformats von B<ctime>(3) ausgab. Neuere Auszüge verwenden \"\n#~ \"Millisekundengenauigkeit im Zeitstempelformat von ISO-8601 in der UTC-0-\"\n#~ \"Zeitzone. Eine Umwandlung vom früheren Zeitstempelformat kann in das \"\n#~ \"binäre erfolgen. Allerdings können solche Versuche dazu führen, dass der \"\n#~ \"Zeitstempel aufgrund von Zeitzonen-Versätzen abweicht.\"\n\n#~ msgid \"\"\n#~ \"The B<utmpdump> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Der Befehl B<utmpdump> ist Teil des Pakets util-linux, welches \"\n#~ \"heruntergeladen werden kann von:\"\n\n#~ msgid \"B<utmpdump> [options] [I<filename>]\"\n#~ msgstr \"B<utmpdump> [Optionen] [I<Dateiname>]\"\n\n#~ msgid \"\"\n#~ \"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw \"\n#~ \"format, so they can be examined.  B<utmpdump> reads from stdin unless a \"\n#~ \"I<filename> is passed.\"\n#~ msgstr \"\"\n#~ \"B<utmpdump> ist ein einfaches Programm zum Ausgeben von UTMP- und WTMP-\"\n#~ \"Dateien im Rohformat, so dass diese untersucht werden können. B<utmpdump> \"\n#~ \"liest aus der Standardeingabe, wenn kein I<Dateiname> übergeben wird.\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --follow>\"\n#~ msgstr \"B<-f>,B< --follow>\"\n\n#, no-wrap\n#~ msgid \"B<-o>,B< --output >I<file>\"\n#~ msgstr \"B<-o>,B< --output >I<Datei>\"\n\n#, no-wrap\n#~ msgid \"B<-r>,B< --reverse>\"\n#~ msgstr \"B<-r>,B< --reverse>\"\n\n#~ msgid \"\"\n#~ \"Only the binary version of the B<utmp>(5)  is standardised.  Textual \"\n#~ \"dumps may become incompatible in future.\"\n#~ msgstr \"\"\n#~ \"Nur die binäre Version von B<utmp>(5) ist standardisiert. Auszüge in \"\n#~ \"Textform können in der Zukunft inkompatibel werden.\"\n\n#~ msgid \"\"\n#~ \"The version 2.28 was the last one that printed text output using \"\n#~ \"B<ctime>(3)  timestamp format.  Newer dumps use millisecond precision \"\n#~ \"ISO-8601 timestamp format in UTC-0 timezone.  Conversion from former \"\n#~ \"timestamp format can be made to binary, although attempt to do so can \"\n#~ \"lead the timestamps to drift amount of timezone offset.\"\n#~ msgstr \"\"\n#~ \"Die Version 2.28 war die letzte, die die Textausgabe mittels des \"\n#~ \"Zeitstempelformats von B<ctime>(3) ausgab. Neuere Auszüge verwenden \"\n#~ \"Millisekundengenauigkeit im Zeitstempelformat von ISO-8601 in der UTC-0-\"\n#~ \"Zeitzone. Eine Umwandlung vom früheren Zeitstempelformat kann in das \"\n#~ \"binäre erfolgen. Allerdings können solche Versuche dazu führen, dass der \"\n#~ \"Zeitstempel aufgrund von Zeitzonen-Versätzen abweicht.\"\n\n#~ msgid \"\"\n#~ \"You may B<not> use the B<-r> option, as the format for the utmp/wtmp \"\n#~ \"files strongly depends on the input format.  This tool was B<not> written \"\n#~ \"for normal use, but for debugging only.\"\n#~ msgstr \"\"\n#~ \"Sie dürfen die Option B<-r> B<nicht> verwenden, da das Format der utmp/\"\n#~ \"wtmp-Dateien stark vom Eingabeformat abhängt. Dieses Werkzeug wurde \"\n#~ \"B<nicht> für normale Verwendung geschrieben, sondern lediglich für \"\n#~ \"Debugging-Zwecke.\"\n\n#~ msgid \"\"\n#~ \"The utmpdump command is part of the util-linux package and is available \"\n#~ \"from E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Der Befehl utmpdump ist Teil des Pakets util-linux, welches aus dem E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> Linux \"\n#~ \"Kernel-Archiv E<.UE .> heruntergeladen werden kann.\"\n\n#~ msgid \"\"\n#~ \"B<wall> [B<-n>] [B<-t> I<timeout>] [B<-g> I<group>] [I<message> | I<file>]\"\n#~ msgstr \"\"\n#~ \"B<wall> [B<-n>] [B<-t> I<Dauer>] [B<-g> I<Gruppe>] [I<Nachricht> | \"\n#~ \"I<Datei>]\"\n\n#~ msgid \"\"\n#~ \"B<wall> displays a I<message>, or the contents of a I<file>, or otherwise \"\n#~ \"its standard input, on the terminals of all currently logged in users. \"\n#~ \"The command will wrap lines that are longer than 79 characters. Short \"\n#~ \"lines are whitespace padded to have 79 characters. The command will \"\n#~ \"always put a carriage return and new line at the end of each line.\"\n#~ msgstr \"\"\n#~ \"B<wall> zeigt auf den Terminals aller aktuell angemeldeten Benutzer eine \"\n#~ \"I<Nachricht> oder den Inhalt einer I<Datei> an, oder ansonsten dessen \"\n#~ \"Standardeingabe. Der Befehl bricht Zeilen um, die länger als 79 Zeichen \"\n#~ \"sind. Kurze Zeilen werden mit Leerraum bis zum Erreichen von 79 Zeichen \"\n#~ \"aufgefüllt. Der Befehl setzt immer einen Wagenrücklauf und einen \"\n#~ \"Zeilenvorschub ans Ende jeder Zeile.\"\n\n#~ msgid \"\"\n#~ \"Only the superuser can write on the terminals of users who have chosen to \"\n#~ \"deny messages or are using a program which automatically denies messages.\"\n#~ msgstr \"\"\n#~ \"Nur der Superuser kann auf Terminals jener Benutzer schreiben, die \"\n#~ \"Nachrichten abweisen oder ein Programm verwenden, das Nachrichten \"\n#~ \"automatisch abweist.\"\n\n#~ msgid \"\"\n#~ \"Reading from a I<file> is refused when the invoker is not superuser and \"\n#~ \"the program is set-user-ID or set-group-ID.\"\n#~ msgstr \"\"\n#~ \"Das Lesen aus einer I<Datei> wird verweigert, wenn der Aufrufende nicht \"\n#~ \"der Superuser ist und das Programm »set-user-ID« oder »set-group-ID« \"\n#~ \"gesetzt hat.\"\n\n#~ msgid \"B<-n>, B<--nobanner>\"\n#~ msgstr \"B<-n>, B<--nobanner>\"\n\n#~ msgid \"Suppress the banner.\"\n#~ msgstr \"unterdrückt das Banner.\"\n\n#~ msgid \"B<-t>, B<--timeout> I<timeout>\"\n#~ msgstr \"B<-t>, B<--timeout> I<Dauer>\"\n\n#~ msgid \"\"\n#~ \"Abandon the write attempt to the terminals after I<timeout> seconds. This \"\n#~ \"I<timeout> must be a positive integer. The default value is 300 seconds, \"\n#~ \"which is a legacy from the time when people ran terminals over modem \"\n#~ \"lines.\"\n#~ msgstr \"\"\n#~ \"gibt den Schreibversuch nach der in Sekunden angegebenen I<Dauer> auf. \"\n#~ \"Diese I<Dauer> muss eine positive Ganzzahl sein. Der Standardwert ist 300 \"\n#~ \"Sekunden, der aus der Zeit herrührt, als die Benutzer Terminals über \"\n#~ \"Modemleitungen bedient haben.\"\n\n#~ msgid \"B<-g>, B<--group> I<group>\"\n#~ msgstr \"B<-g>, B<--group> I<Gruppe>\"\n\n#~ msgid \"\"\n#~ \"Limit printing message to members of group defined as a I<group> \"\n#~ \"argument. The argument can be group name or GID.\"\n#~ msgstr \"\"\n#~ \"begrenzt die Ausgabe der Nachricht auf die Mitglieder der angegebenen \"\n#~ \"I<Gruppe>. Das Argument kann ein Gruppenname oder eine GID sein.\"\n\n#~ msgid \"\"\n#~ \"Some sessions, such as B<wdm>(1x), that have in the beginning of \"\n#~ \"B<utmp>(5) ut_type data a \\\\(aq:\\\\(aq character will not get the message \"\n#~ \"from B<wall>. This is done to avoid write errors.\"\n#~ msgstr \"\"\n#~ \"Einige Sitzungen, beispielsweise B<wdm>(1x), die am Anfang der ut_type-\"\n#~ \"Daten in B<utmp>(5) einen Doppelpunkt gesetzt haben, empfangen keine \"\n#~ \"Nachricht von B<wall>. Dies geschieht, um Schreibfehler zu vermeiden.\"\n\n#~ msgid \"A B<wall> command appeared in Version 7 AT&T UNIX.\"\n#~ msgstr \"Ein B<wall>-Befehl erschien in Version 7 von AT&T UNIX.\"\n\n#~ msgid \"B<mesg>(1), B<talk>(1), B<write>(1), B<shutdown>(8)\"\n#~ msgstr \"B<mesg>(1), B<talk>(1), B<write>(1), B<shutdown>(8)\"\n\n#~ msgid \"\"\n#~ \"The B<wall> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Der Befehl B<wall> ist Teil des Pakets util-linux, welches \"\n#~ \"heruntergeladen werden kann von:\"\n\n#, no-wrap\n#~ msgid \"August 2013\"\n#~ msgstr \"August 2013\"\n\n#~ msgid \"\"\n#~ \"B<wall> displays a I<message>, or the contents of a I<file>, or otherwise \"\n#~ \"its standard input, on the terminals of all currently logged in users.  \"\n#~ \"The command will wrap lines that are longer than 79 characters.  Short \"\n#~ \"lines are whitespace padded to have 79 characters.  The command will \"\n#~ \"always put a carriage return and new line at the end of each line.\"\n#~ msgstr \"\"\n#~ \"B<wall> zeigt auf den Terminals aller aktuell angemeldeten Benutzer eine \"\n#~ \"I<Nachricht> oder den Inhalt einer I<Datei> an, oder ansonsten dessen \"\n#~ \"Standardeingabe. Der Befehl bricht Zeilen um, die länger als 79 Zeichen \"\n#~ \"sind. Kurze Zeilen werden mit Leerraum bis zum Erreichen von 79 Zeichen \"\n#~ \"aufgefüllt. Der Befehl setzt immer einen Wagenrücklauf und einen \"\n#~ \"Zeilenvorschub ans Ende jeder Zeile.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --nobanner>\"\n#~ msgstr \"B<-n>,B< --nobanner>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --timeout >I<timeout>\"\n#~ msgstr \"B<-t>,B< --timeout >I<Dauer>\"\n\n#~ msgid \"\"\n#~ \"Abandon the write attempt to the terminals after I<timeout> seconds.  \"\n#~ \"This I<timeout> must be a positive integer.  The default value is 300 \"\n#~ \"seconds, which is a legacy from the time when people ran terminals over \"\n#~ \"modem lines.\"\n#~ msgstr \"\"\n#~ \"gibt den Schreibversuch nach der in Sekunden angegebenen I<Dauer> auf. \"\n#~ \"Diese I<Dauer> muss eine positive Ganzzahl sein. Der Standardwert ist 300 \"\n#~ \"Sekunden, der aus der Zeit herrührt, als die Benutzer Terminals über \"\n#~ \"Modemleitungen bedient haben.\"\n\n#, no-wrap\n#~ msgid \"B<-g>,B< --group >I<group>\"\n#~ msgstr \"B<-g>,B< --group >I<Gruppe>\"\n\n#~ msgid \"\"\n#~ \"Limit printing message to members of group defined as a I<group> \"\n#~ \"argument.  The argument can be group name or GID.\"\n#~ msgstr \"\"\n#~ \"begrenzt die Ausgabe der Nachricht auf die Mitglieder der angegebenen \"\n#~ \"I<Gruppe>. Das Argument kann ein Gruppenname oder eine GID sein.\"\n\n#~ msgid \"\"\n#~ \"Some sessions, such as wdm, that have in the beginning of B<utmp>(5)  \"\n#~ \"ut_type data a ':' character will not get the message from B<wall>.  This \"\n#~ \"is done to avoid write errors.\"\n#~ msgstr \"\"\n#~ \"Einige Sitzungen, beispielsweise wdm, die am Anfang der ut_type-Daten in \"\n#~ \"B<utmp>(5) einen Doppelpunkt gesetzt haben, empfangen keine Nachricht von \"\n#~ \"B<wall>. Dies geschieht, um Schreibfehler zu vermeiden.\"\n\n#~ msgid \"\"\n#~ \"The wall command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Der Befehl »wall« ist Teil des Pakets util-linux, welches aus dem E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> Linux \"\n#~ \"Kernel-Archiv E<.UE> heruntergeladen werden kann.\"\n"
  },
  {
    "path": "man/po/es.po",
    "content": "# Spanish translation of the sysvinit man pages.\n# Pedro Pablo Fábrega <pfabrega@arrakis.es>, 1998-1999.\n# Fidel García <fidelgq@dinamic.net>, 1999.\n# Marcos Fouces <marcos@debian.org>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-01 15:59-0300\\n\"\n\"PO-Revision-Date: 2021-05-29 14:12+0200\\n\"\n\"Last-Translator: Marcos Fouces <marcos@debian.org>\\n\"\n\"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\\n\"\n\"Language: es\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21 de julio de 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, fuzzy, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"Manual del Administrador del Sistema Linux\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NOMBRE\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"SINOPSIS\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\n#, fuzzy\n#| msgid \"\"\n#| \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIPCIÓN\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"OPCIONES\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-f>,B< --file >I<archivo>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-f>,B< --file >I<archivo>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"NOTAS\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"ERRORES\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"AUTOR\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"VÉASE TAMBIÉN\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"Mayo de 2006\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"ESTADO DE SALIDA\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"EJEMPLOS\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"6 de noviembre de 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"halt, reboot, poweroff - detienen el sistema\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"DIAGNÓSTICOS\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29 de julio de 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"init, telinit - control de inicialización de procesos\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [ B<-t> I<SEGUNDOS> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\"B<Init> es el padre de todos los procesos. Su papel primario es crear \"\n\"procesos a partir de un guión guardado en el fichero I</etc/inittab> (véase \"\n\"B<inittab>(5)).  Este fichero normalmente tiene entradas que harán que se \"\n\"levante B<getty>s en cada línea en que los usuarios puedan conectarse. \"\n\"También controla procesos autónomos requeridos por un sistema particular.\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"NIVELES DE EJECUCIÓN (RUNLEVELS)\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\"Un I<nivel de ejecución> es una configuración de software del sistema que \"\n\"permite existir solo a un grupo de procesos seleccionado. Los procesos \"\n\"levantados por B<init> para cada uno de estos niveles de ejecución se \"\n\"definen en el fichero I</etc/inittab>.  B<Init> puede estar en uno de los \"\n\"ocho niveles de ejecución: B<0\\\\(en6> y B<S> o B<s>.  El cambio de nivel de \"\n\"ejecución se hace mediante un usuario con privilegio que ejecute B<telinit>, \"\n\"que envía las señales apropiadas a B<init>, diciéndole a qué nivel de \"\n\"ejecuación tiene que cambiar.\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\"Los niveles 7-9 también son válidos, aunque realmente no están documantados. \"\n\"Esto es porque las variantes Unix tradicionales no los usan.\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"CARGA\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\"Tras llamar a B<init> como el último paso de la secuencia de carga del \"\n\"núcleo, busca el fichero I</etc/inittab> para ver si hay una entrada del \"\n\"tipo B<initdefault> (véase B<inittab>(5)). La entrada B<initdefault> \"\n\"determina el nivel de ejecución inicial del sistema.  Si no está esa entrada \"\n\"(o no existe I</etc/inittab>), se debe introducir un nivel de ejecución en \"\n\"la consola del sistema.\"\n\n#. type: Plain text\n#: ../init.8:103\n#, fuzzy\n#| msgid \"\"\n#| \"Runlevel B<S> or B<s> bring the system to single user mode and do not \"\n#| \"require an B</etc/initttab> file.  In single user mode, B</sbin/sulogin> \"\n#| \"is invoked on B</dev/console>.\"\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\"El nivel de ejecución B<S> o B<s> lleva al sistema al modo monousuario y no \"\n\"requiere un fichero B</etc/initttab> . En modo monousuario, se llama a B</\"\n\"sbin/sulogin> en B</dev/console>.\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\"Cuando se entra por primera vez en un modo multiusuario, B<init> realiza las \"\n\"entradas B<boot> y B<bootwait> para permitir que se monten los sistemas de \"\n\"ficheros antes de que los usuarios se presenten al sistema. Entonces se \"\n\"procesan todas las entradas para este nivel.\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\"Cuando inicia un nuevo proceso, B<init> primero verifica si existe el \"\n\"fichero I</etc/initscript>. Si existe, usa este script para iniciar el \"\n\"proceso.\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\"Cada vez que un hijo termina, B<init> registra el hecho y la razón de su \"\n\"muerte en I</var/run/utmp> y I</var/log/wtmp>, suponiendo  que estos \"\n\"ficheros existen.\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"CAMBIO DE NIVEL DE EJECUCIÓN\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\"Tras haber lanzado todos los procesos especificados, B<init> espera a que \"\n\"alguno de sus procesos descendientes muera, una señal de fallo de \"\n\"alimentación o hsata que se le indique por B<telinit> que cambie el nivel de \"\n\"ejecución del sisema. Cuando alguna de las tres condiciones anteriores \"\n\"ocurre, re-examina el fichero I</etc/inittab>. Se pueden añadir nuevas \"\n\"entradas a este fichero en cualquier momento. Sin embargo, B<init> aun \"\n\"espera a que alguna de las tres condiciones anteriores suceda. Para \"\n\"proporcionar un respuesta inmediata, B<telinit Q> o el mandato B<q> puede \"\n\"levantar B<init> para que re-examine el fichero I</etc/inittab>.\"\n\n#. type: Plain text\n#: ../init.8:136\n#, fuzzy\n#| msgid \"\"\n#| \"If B<init> is not in single user mode and receives a powerfail signal \"\n#| \"(SIGPWR), it reads the file B</etc/powerstatus>. It then starts a command \"\n#| \"based on the contents of this file:\"\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\"Si B<init> no está en modo monousuario una señal de fallo de alimentación, \"\n\"se llaman las entradas especiales powerfail.\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"F(AIL)\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"O(K)\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"L(OW)\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\"Cuando se lesolicita a B<init> que cambie el nivel, envía la señal de aviso \"\n\"B<SIGTERM> a todos los procesos que no están definidos en el nuevo nivel de \"\n\"ejecución. Espera 3 segundos antes de forzar la terminación de estos \"\n\"procesos mediante la señal B<SIGKILL>. Observe que B<init> supone que todos \"\n\"estos procesos (y sus descendientes) permanecen en el mismo grupo de \"\n\"procesos que B<init> creó originalmente para ellos. Si cualquier proceso \"\n\"cambia la afiliación de grupo de proceso no recibirá estas señales. Tales \"\n\"procesos necesitan ser terminados de forma separada.\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\"B</sbin/telinit> está enlazado con B</sbin/init>.  Toma un argumento de un \"\n\"solo carácter y señala a B<init> para realizar la acción apropiada. Los \"\n\"siguientes argumetos sirven como directivas para B<telinit>:\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"indica a B<init> que cambie al nivel de ejecución especificado.\"\n\n#. type: IP\n#: ../init.8:172\n#, fuzzy, no-wrap\n#| msgid \"B<a>,B<b>,B<c>\"\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"B<a>,B<b>,B<c>\"\n\n#. type: Plain text\n#: ../init.8:175\n#, fuzzy\n#| msgid \"\"\n#| \"tell B<init> to process only those B</etc/inittab> file entries having \"\n#| \"runlevel B<a>,B<b> or B<c>.\"\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\"indica a B<init> que procese solo las entradas del fichero B</etc/inittab> \"\n\"que tengan nivel de ejecución B<a>,B<b> o B<c>.\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> o B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"indica a B<init> que re-examine el fichero I</etc/inittab>.\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> o B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"indica a B<init> que cambie a modo monousuario.\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> o B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\"indica a B<init> que reejecute él mismo (guardando el estado). No re-\"\n\"examining el fichero I</etc/inittab>. El nivel de ejecución debería ser uno \"\n\"de B<Ss0123456>, en otro caso la solicitud sería ignorada silenciosamente.\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\"B<telinit> ptambién puede decir a B<init> cuanto esperará entre los envíos a \"\n\"los procesos de las señales B<SIGTERM> y B<SIGKILL>.  El valor por defecto \"\n\"es is 3 segundos, pero se puede cambiar con la opción B<-t>.\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\"B<telinit> solo se puede llamar por usuarios con los privilegios apropiados.\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\"El binario B<init> comprueba si es B<init> o B<telinit> mirando a su I<id de \"\n\"proceso>; el id del proceso B<init> real es siempre B<1>.  De esto podemos \"\n\"concluir que en lugar de llamar a B<telinit> se puede usar B<init> en su \"\n\"lugar como abreviatura.\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"ENTORNO\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"B<Init> fija las siguientes variables de entorno para todos sus hijos:\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\"Como el nombre dice. Útil para determinar si un guión corre directamente de \"\n\"B<init>.\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"El nivel actual de ejecución del sistema.\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"El nivel de ejecución previo (útil tras un cambio de nivel).\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\"La consola del sistema. Esto realmente es heredado del núcleo; sin embargo \"\n\"si no está fijado B<init> lo pondrá como I</dev/console> por defecto.\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"BANDERAS DE CARGA\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\"Es posible pasar un número de banderas a B<init> desde el monitor de \"\n\"arranque (v.g. LILO o GRUB). B<init> acepta las siguientes banderas:\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s, S, single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\"Arranque en modo monousuario. En este modo I</etc/inittab> se examina y los \"\n\"guiones de carga rc normalmente se ejecutan antes de que la shell del modo \"\n\"monousuario se inicie.\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1-5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"Nivel de ejecución en el que arrancar.\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b, emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\"Carga directamente en una shell monousuario sin ejecutar cualquier otro \"\n\"guion de inicio.\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a, auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z >I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"INTERFAZ\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\"B<init> escucha en un I<fifo> en /dev, I</run/initctl>, los mensajes. \"\n\"B<Telinit> usa esto para comunicar con B<init>. La interfaz no está muy bien \"\n\"documentada o acabada. Quienes estén interesados debería estudiar el fichero \"\n\"I<initreq.h> del subdirectorio I<src/> del código fuente de B<init>.\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"SEÑALES\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"Init reacciona ante diversas señales:\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\"Al recibir esta señal, B<init> cierra y reabre su fifo de de control B</run/\"\n\"initctl>.  Ess útil para los guiones de arranque cuando se vuelve a montar \"\n\"I</dev>.\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\"Normalmente el núcleo envía esta señal a B<init> cuando se pulsa CTRL-ALT-\"\n\"SUPR. Esto activa la acción I<ctrlaltdel>.\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\"El núcleo envía esta señal cuado se pulsa la tecla I<KeyboardSignal>.  \"\n\"Activa la acción I<kbrequest>.\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"CONFORME A\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\"B<init> es compatible con el init System V init. Funciona junto a los \"\n\"guiones de lso directorios I</etc/init.d> y I</etc/rc{runlevel}.d>.  Si su \"\n\"sistema usa esta convención, debería haber un fichero I<README> en el \"\n\"directorio I</etc/init.d> que explica como funcionan estos guiones.\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"ARCHIVOS\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"AVISOS\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\"B<init> supone que procesos y descendientes de procesos permanecen en el \"\n\"mismo grupo de procesos que se creó originalmente para ellos. Si los \"\n\"procesos cambian su grupo B<init> no puede matarlos y v.d. puede acabar con \"\n\"dos procesos leyendo de una línea del terminal.\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\"Si B<init> encuantra que está levantando continuamente una entrada, más de \"\n\"10 veces en dos minutos, supondrá que es un error en la cedena del mandato, \"\n\"genera un mensaje de error en la consola del sistema y rehusa levantar esta \"\n\"entrada hasta que hayan pasado 5 minutos o recibas una señal. Esto no \"\n\"previene de que se coma los recursos del sistema cuando alguien comete un \"\n\"error tipográfico en el fichero I</etc/inittab> o en el programa para el que \"\n\"se elimina la entrada.\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>, página de \"\n\"manual inicial por E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"13 de abril de 2018\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\n#, fuzzy\n#| msgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"El nivel de ejecución previo (útil tras un cambio de nivel).\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10 de julio de 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"initscript - guión que ejecuta órdenes inittab\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"/bin/sh /etc/initscript id niveles_de_ejecucion acción proceso\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\"Cuando el guión de entorno I</etc/initscript> existe, B<init> lo usará para \"\n\"ejecutar órdenes para I<inittab>.  Este guión puede ser usado para cosas \"\n\"como, por ejemplo, colocar los valores por defecto I<ulimit> y I<umask> para \"\n\"cada proceso.\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\"Este es un ejemplo de initscript, que se podría instalar en tu sistema como \"\n\"I</etc/initscript.sample>.\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\"#\\n\"\n\"# initscript   Ejecutado por init(8) para cada programa,\\n\"\n\"#              requiere un formato como el siguiente\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>nivelE<gt> E<lt>acciónE<gt> E<lt>procesoE<gt>\\n\"\n\"#\\n\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\"  # Colocamos umask para salvar el nivel, y permitir volcados de\\n\"\n\"  # memoria.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\"  # Ejecutamos el programa.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\n\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript.\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4 de diciembre de 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\"inittab - formato del fichero inittab usado por el proceso init compatible \"\n\"SysV\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\"El fichero B<inittab> describe qué procesos se inician en la carga y durante \"\n\"la operación normal (por ejemplo, \\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distingue múltiples I<niveles de ejecución>, cada \"\n\"uno de los cuales puede tener su propio conjunto de procesos que se inician. \"\n\"Los niveles de ejecución válidos son B<0>-B<6> más B<A>, B<B> y B<C> para \"\n\"entradas B<bajo demanda>.  Una entrada del fichero B<inittab> tiene el \"\n\"siguiente formato:\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"I<id>:I<niveles_ejecución>:I<acción>:I<proceso>\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"Las líneas que comienzan con `#' se ignoran.\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<id>\"\n\n#. type: Plain text\n#: ../inittab.5:48\n#, fuzzy\n#| msgid \"\"\n#| \"is a unique sequence of 1-4 characters which identifies an entry in \"\n#| \"B<inittab> (for versions of sysvinit compiled with libraries E<lt> 5.2.18 \"\n#| \"or a.out libraries the limit is 2 characters).\"\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\"es una secuencia única de 1 a 4 caracteres que identifican una entrada de \"\n\"B<inittab> (para las versiones de sysvinit compiladas con bibliotecas E<lt> \"\n\"5.2.18 o bibliotecas a.out el límite es de 2 caracteres).\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\n#, fuzzy\n#| msgid \"\"\n#| \"Note: For gettys or other login processes, the I<id> field should be the \"\n#| \"tty suffix of the corresponding tty, e.g.\\\\& B<1> for B<tty1>.  \"\n#| \"Otherwise, the login accounting might not work correctly.\"\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\"Nota: Para gettys u otros procesos de presentación al sistema, el campo \"\n\"I<id> debería de ser el sufijo tty de la correspondiente tty, por ejemplo, \"\n\"\\\\& B<1> para B<tty1>.  En otro caso, las contabilidades de conexiones puede \"\n\"que no funcionen correctamente.\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"I<niveles_ejecución>\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"\"\n\"es la lista de niveles de ejecución para lo cuales se llevarán a cabo las \"\n\"acciones especificadas.\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"I<acción>\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"describe qué acción se debería llevar a cabo.\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"I<proceso>\"\n\n#. type: Plain text\n#: ../inittab.5:70\n#, fuzzy\n#| msgid \"\"\n#| \"specifies the process to be executed.  If the process field starts with a \"\n#| \"`+' character, B<init> will not do utmp and wtmp accounting for that \"\n#| \"process.  This is needed for gettys that insist on doing their own utmp/\"\n#| \"wtmp housekeeping.  This is also a historic bug.\"\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\"especifica el proceso a ejecutar. Si el campo proceso comienza con un \"\n\"carácter `+', B<init> no registrará utmp y wtmp para ese proceso.  Esto es \"\n\"necesario para gettys que insisten en hacer sus propias labores de utmp/\"\n\"wtmp.  Esto es también un fallo histórico.\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\"El campo I<niveles_ejecución> tiene que contener múltiples caracteres para \"\n\"diferente niveles de ejecución. Por ejemplo, B<123> especifica que el \"\n\"proceso se debería iniciar en los niveles de ejecución 1, 2 y 3.  Las \"\n\"entrada de I<niveles de ejecución> B<bajo demanda> pueden contener una B<A>, \"\n\"B<B>, o B<C>.  Las entradas de campos de I<nivel_ejecución> de B<sysinit>, \"\n\"B<boot> y B<bootwait> se ignoran.\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\"Cuando se cambia un nivel de ejecución, cualesquiera procesos en ejecución \"\n\"que no estén especificados en el nuevo nivel de ejecución se matan, primero \"\n\"con \\\\s-2SIGTERM\\\\s0 y después con \\\\s-2SIGKILL\\\\s0.\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"Acciones válidas para el campo I<acción> son:\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"El proceso se reiniciará cuando termine (v.g.\\\\& getty).\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\"El proceso se iniciará una vez cuando se entre en el nivel de ejecución \"\n\"específico e B<init> esperará a su terminación.\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\"El proceso se ejecutará una vez cuando se entre en el nivel de ejecución \"\n\"especificado.\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\"El proceso se ejecutará durante el arranque del sistema. El campo The \"\n\"I<niveles_ejecución> se ignora.\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"El proceso se ejecutará durante el arranque del sistema, mientras B<init> \"\n\"espera su terminación (v.g.\\\\& /etc/rc).  El campo I<niveles_ejección> se \"\n\"ignora.\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"Esto no hace nada.\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\"Un proceso marcado con un nivel de ejecución B<ondemand> se ejecutará cuando \"\n\"se llame al nivel de ejecución especificado B<ondemand>. Sin embargo, no se \"\n\"produce cambio de nivel de ejecución (los niveles de ejecución B<ondemand> \"\n\"son `a', `b', y `c').\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\"Una entrada B<initdefault> especifica el nivel de ejecución en el cual se \"\n\"entrará tras el arranque del sistema. Si no existe ninguno, B<init> pedirá \"\n\"un nivel de ejecución en la consola. El campo I<proceso> se ignora.\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"El proceso se ejecutará durante el arranque del sistema. Se ejecutará antes \"\n\"de cualquier entrada B<boot> o B< bootwait>.  El campo I<niveles_ejecución> \"\n\"se ignora.\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\"El proceso se ejecutará cuando B<init> reciba la señal SIGPWR, indicando que \"\n\"hay algún problema con la alimentación eléctrica.  B<init> esperará que el \"\n\"proceso termine antes de continuar.\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\"Como en B<powerwait>, excepto que B<init> no espera que el proceso se \"\n\"complete.\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\n#, fuzzy\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\"El proceso se ejecutará cuando B<init> reciba la señal SIGPWR, con la \"\n\"condición de que haya un fichero llamado B</etc/powerstatus> que contenga la \"\n\"palabra B<OK>. Esto significa que la alimentación eléctrica ha vuelto.\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\"Como en B<powerwait>, excepto que B<init> no espera que el proceso se \"\n\"complete.\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\"El proceso se ejecutará cuando B<init> reciba la señal B<SIGINT>.  Esto \"\n\"significa que alguien en la consola del sistema ha pulsado la combinación de \"\n\"teclas B<CTRL-ALT-DEL> . Normalmente uno quiere ejecutar algún tipo de \"\n\"B<shutdown> bien para entrar en modo monousuario o reiniciar la máquina.\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\"El proceso se ejecutará cuando B<init> reciba una señal del gestor de \"\n\"teclado que se ha pulsado una combinación especial de teclas en el teclado \"\n\"de la consola.\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\"La documentación para esta función no está completa aun; se puede encontrar \"\n\"más documentación en los paquetes kbd-x.xx (el mas reciente era kbd-0.94 en \"\n\"el momento de escribir esto). Básicamente quiere aplicar alguna combinación \"\n\"de teclado a la acción \\\"KeyboardSignal\\\". Por ejemplo, para aplicar Alt-\"\n\"FlechaArriba para este propósito use lo siguiente en su fichero keymap:\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"alt keycode 103 = KeyboardSignal\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\"Esto es un ejemplo de un inittab que reensambla el viejo inittab de Linux:\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\"# inittab para linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\"Este fichero inittab ejecuta I</etc/rc> durante el arranque e inicia gettys \"\n\"en tty1-tty4.\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\"Un B<inittab> más elaborado con diferentes niveles de ejecución (vea los \"\n\"comentarios interiores):\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\"# Nivel para ejecutar\\n\"\n\"id:2:initdefault:\\n\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \"# System initialization before anything else.\\n\"\n#| \"si::sysinit:/etc/rc.d/bcheckrc\\n\"\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\"# Inicialización del sistema antes de cualquier otra cosa.\\n\"\n\"si::sysinit:/etc/rc.d/bcheckrc\\n\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\"# Qué hacer ante el \\\"saludo de 3 dedos\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \"# Runlevel 2&3: getty on console, level 3 also getty on modem port.\\n\"\n#| \"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n#| \"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n#| \"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n#| \"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n#| \"S2:3:respawn:/sbin/uugetty ttyS2 M19200\\n\"\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\"# Nivel de ejecución 2&3: getty en consola, nivel 3 también  getty \\n\"\n\"# en el puerto del módem.\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S2:3:respawn:/sbin/uugetty ttyS2 M19200\\n\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"B<Init> fue escrito por E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .>  Esta página de manual fue escrita por E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> y \"\n\"modificada por E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4 de Noviembre de 2003\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"killall5 - envía una señal a todos los procesos\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:34\n#, fuzzy\n#| msgid \"\"\n#| \"B<killall5> is the SystemV killall command. It sends a signal to all \"\n#| \"processes except the processes in its own session, so it won't kill the \"\n#| \"shell that is running the script it was called from. Its primary (only) \"\n#| \"use is in the B<rc> scripts found in the /etc/init.d directory.\"\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\"B<killall5> es la orden killall de SystemV. Envía una señal a todos los \"\n\"procesos excepto al de su propia sesión, para no eliminar el shell que \"\n\"ejecutó el guión desde el que fue llamado. Su uso principal (único) es en el \"\n\"guión B<rc> que se encuentra en el directorio /etc/init.d\"\n\n#. type: IP\n#: ../killall5.8:35\n#, fuzzy, no-wrap\n#| msgid \"-o I<omitpid>\"\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"-o I<omitpid>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"31 de julio de 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"last, lastb - muestra los usuarios que han accedido al sistema\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\n#, fuzzy\n#| msgid \"\"\n#| \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#| \"designated by the B<-f> option) and displays a list of all users logged \"\n#| \"in (and out) since that file was created.  One or more I<usernames> and/\"\n#| \"or I<ttys> can be given, in which case B<last> will show only the entries \"\n#| \"matching those arguments.  Names of I<ttys> can be abbreviated, thus \"\n#| \"B<last 0> is the same as B<last tty0>.\"\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\"B<last> analiza el contenido del archivo I</var/log/wtmp> (o el que se haya \"\n\"indicada mediante la opción B<-f>) y muestra un listado con los usuarios \"\n\"conectados (y desconectados) desde la creación de dicho archivo. Es posible \"\n\"indicar uno o más I<nombres_de_usuario> y/o I<ttys>, en cuyo caso solo se \"\n\"mostrarán las entradas que coincidan con éstos patrones. También cabe la \"\n\"posibilidad de abreviar los nombres de los I<ttys>, por ejemplo B<last0> es \"\n\"lo mismo que B<last tty0>.\"\n\n#. type: Plain text\n#: ../last.1:61\n#, fuzzy\n#| msgid \"\"\n#| \"When catching a SIGINT signal (generated by the interrupt key, usually \"\n#| \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#| \"through the file; in the case of the SIGINT signal B<last> will then \"\n#| \"terminate.\"\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\"Si B<last> recibe una señal SIGINT (creada por una solicitud de \"\n\"interrupción, generalmente con Control-C) o SIGQUIT; se mostrará en qué \"\n\"punto estaba el análisis. En el caso de haber recibido la señal SIGINT, el \"\n\"proceso finalizará.\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\"El pseudo-usuario B<reboot> accede al sistema cada vez que se reinicia el \"\n\"equipo, por lo tanto B<last reboot> mostrará una lista de todos los \"\n\"reinicios desde la creación del archivo.\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\"B<lastb> es idéntico a B<last> salvo que analiza por defecto el archivo I</\"\n\"var/log/btmp> que muestra los intentos de acceso fallidos.\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<archivo>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<num>\"\n\n#. type: Plain text\n#: ../last.1:75\n#, fuzzy\n#| msgid \"Tell B<last> how many lines to show.\"\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"Indica a B<last> el número de líneas que debe mostrar.\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<-n> I<num>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\n#, fuzzy\n#| msgid \"\"\n#| \"Display the state of logins since the specified I<time>.  This is useful, \"\n#| \"e.g., to easily determine who was logged in at a particular time.  The \"\n#| \"option is often combined with B<--until>.\"\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\"Muestra la situación de los accesos a partir del la I<fecha_y_hora> \"\n\"indicados. Esto suele ser útil para ver quien accedió al sistema en un \"\n\"instante determinado. Esta opción suele combinarse con B<--until>.\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"No muestra el campo con el nombre del equipo.\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\n#, fuzzy\n#| msgid \"\"\n#| \"Display the hostname in the last column. Useful in combination with the \"\n#| \"B<--dns> option.\"\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\"Muestra el nombre del equipo en la última columna. Suele usarse en \"\n\"conjunción con la opción B<--dns>.\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\"Para el caso de accesos desde otros equipos, Linux no solo guarda el nombre \"\n\"del equipo remoto sino también su dirección IP. Esta opción convierte esa \"\n\"dirección IP en un nombre de equipo.\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"Muestra la fecha y hora de los accesos.\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"\"\n\"Muestra el nombre de usuario completo y el nombre de dominio en la salida.\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\"Muestra las veces que se apagó un equipo y los cambios en los niveles de \"\n\"ejecución.\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\"Es posible que los archivos I<wtmp> y I<btmp> no se encuentren en el equipo. \"\n\"Observe que el mismo solo registrará información en estos archivos si \"\n\"existen, esto sería un error en la configuración que se subsanaría \"\n\"simplemente creándolos con la orden B<touch>(1), es decir ejecutando \"\n\"B<touch /var/log/wtmp>.\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"26 de febrero de 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Órdenes de usuario\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\n#, fuzzy\n#| msgid \"\"\n#| \"If no arguments are given, B<mesg> displays the present message status to \"\n#| \"the standard error output.\"\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Si no se indica ninguna opción, B<mesg> imprimirá el estado actual del \"\n\"terminal.\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"MOUNTPOINT\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"15 de marzo de 2004\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1 de Septiembre de 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"pidof - busca el ID de un programa que se está ejecutando\"\n\n#. type: Plain text\n#: ../pidof.8:36\n#, fuzzy\n#| msgid \"\"\n#| \"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-o> I<omitpid[,omitpid...]>] \"\n#| \"[B<-o> I<omitpid[,omitpid...]...>] [B<-f> I<format>] B<program> \"\n#| \"[B<program...>]\"\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-o> I<omitpid[,omitpid...]>] [B<-\"\n\"o> I<omitpid[,omitpid...]...>] [B<-f> I<formato>] B<programa> [B<programa...\"\n\">]\"\n\n#. type: Plain text\n#: ../pidof.8:44\n#, fuzzy\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\"B<Pidof> busca el id del proceso del nombre del programa. Imprime los ids a \"\n\"la salida estándar. Es usado generalmente en guiones que cambian el nivel de \"\n\"ejecución, especialmente cuando el sistema tiene el I<System-V> como una \"\n\"estructura I<rc>. En este caso los guiones están en /etc/rc?.d, donde ? es \"\n\"el nivel de ejecución.\"\n\n#. type: Plain text\n#: ../pidof.8:47\n#, fuzzy\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\"Lanzamiento simple - indica al programa que solo debe retornar un I<pid>.\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\n#, fuzzy\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\"También guión - hace que el programa devuelva también el id del entorno que \"\n\"ejecutó el guión.\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"-o I<omitpid>\"\n\n#. type: Plain text\n#: ../pidof.8:80\n#, fuzzy\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\"Le dice a I<pidof> que omita los procesos que tienen ese id. El pid especial \"\n\"B<%PPID> puede usarse para nombrar el proceso del programa I<pidof>, en \"\n\"otras palabras la llamada al entorno o al guión de entorno.\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:90\n#, fuzzy\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\"I<pidof> es un enlace simple (simbólico) para el programa I<killall5>, que \"\n\"debería estar también en I</sbin>.\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"12 de noviembre de 2018\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<archivo\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"27 de mayo de 1997\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"runlevel - busca el nivel de ejecución previo y actual\"\n\n#. type: Plain text\n#: ../runlevel.8:24\n#, fuzzy\n#| msgid \"B<runlevel> [options...]\"\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"B<runlevel> [opciones...]\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"12 de noviembre de 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"Reinicia después de cerrarlo.\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\n#, fuzzy\n#| msgid \"shutdown\"\nmsgid \"When to shutdown.\"\nmsgstr \"shutdown\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\nmsgid \"Message to send to all users.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"B<shutdown: no authorized users logged in>\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"sulogin - conexión en modo monousuario\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"Al usuario se le muestra el siguiente mensaje:\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"Introduciendo la clave de root para su mantenimiento\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"(o tecleando Control-D para un comienzo normal):\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\"B<sulogin> conectará en el terminal actual, o para conexiones opcionales se \"\n\"puede especificar en la línea de órdenes (generalmente I</dev/console>).\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, fuzzy, no-wrap\n#| msgid \"ENVIRONMENT\"\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"ENTORNO\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\"B<sulogin> busca la variable de entorno B<SUSHELL> o B<sushell> para saber \"\n\"que entorno debe comenzar. Si la variable de entorno no está puesta, probará \"\n\"a ejecutar el entorno del root desde I</etc/passwd>. Si falla retrocederá a \"\n\"I</bin/sh>.\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"8 de febrero de 2010\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"15 de abril de 2003\"\n\n#. type: Plain text\n#: ../wall.1:22\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - envía un mensaje a todos los terminales\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, no-wrap\n#~ msgid \"B<a>,\"\n#~ msgstr \"B<a>,\"\n\n#~ msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#, no-wrap\n#~ msgid \"fstab-decode\"\n#~ msgstr \"fstab-decode\"\n\n#~ msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"LAST, LASTB\"\n#~ msgid \"LAST,LASTB\"\n#~ msgstr \"LAST, LASTB\"\n\n#, fuzzy, no-wrap\n#~| msgid \"Linux System Administrator's Manual\"\n#~ msgid \"Linux User's Manual\"\n#~ msgstr \"Manual del Administrador del Sistema Linux\"\n\n#, fuzzy\n#~| msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgid \"Miquel van Smoorenburg (miquels@cistron.nl)\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#, no-wrap\n#~ msgid \"-s\"\n#~ msgstr \"-s\"\n\n#, no-wrap\n#~ msgid \"-c\"\n#~ msgstr \"-c\"\n\n#, no-wrap\n#~ msgid \"-n\"\n#~ msgstr \"-n\"\n\n#, no-wrap\n#~ msgid \"-q\"\n#~ msgstr \"-q\"\n\n#, no-wrap\n#~ msgid \"-x\"\n#~ msgstr \"-x\"\n\n#, no-wrap\n#~ msgid \"-z\"\n#~ msgstr \"-z\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> \"\n#~| \"to determine what shell to start.  If the environment variable is not \"\n#~| \"set, it will try to execute root's shell from I</etc/passwd>.  If that \"\n#~| \"fails, it will fall back to I</bin/sh>.\"\n#~ msgid \"\"\n#~ \"I<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n#~ \"determine what shell to start. If the environment variable is not set, it \"\n#~ \"will try to execute root's shell from /etc/passwd. If that fails it will \"\n#~ \"fall back to B</bin/sh>.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> busca la variable de entorno B<SUSHELL> o B<sushell> para \"\n#~ \"saber que entorno debe comenzar. Si la variable de entorno no está \"\n#~ \"puesta, probará a ejecutar el entorno del root desde I</etc/passwd>. Si \"\n#~ \"falla retrocederá a I</bin/sh>.\"\n\n#, fuzzy\n#~| msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgid \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n\n#, no-wrap\n#~ msgid \"systemd 249\"\n#~ msgstr \"systemd 249\"\n\n#, no-wrap\n#~ msgid \"halt\"\n#~ msgstr \"halt\"\n\n#~ msgid \"B<halt> [OPTIONS...]\"\n#~ msgstr \"B<halt> [OPCIONES...]\"\n\n#~ msgid \"B<poweroff> [OPTIONS...]\"\n#~ msgstr \"B<poweroff> [OPCIONES...]\"\n\n#~ msgid \"B<reboot> [OPTIONS...]\"\n#~ msgstr \"B<reboot> [OPCIONES...]\"\n\n#~ msgid \"B<--help>\"\n#~ msgstr \"B<--help>\"\n\n#~ msgid \"Print a short help text and exit\\\\&.\"\n#~ msgstr \"Mostrar texto de ayuda y finalizar\\\\&.\"\n\n#~ msgid \"B<--halt>\"\n#~ msgstr \"B<--halt>\"\n\n#~ msgid \"B<-p>, B<--poweroff>\"\n#~ msgstr \"B<-p>, B<--poweroff>\"\n\n#~ msgid \"B<--reboot>\"\n#~ msgstr \"B<--reboot>\"\n\n#~ msgid \"B<-f>, B<--force>\"\n#~ msgstr \"B<-f>, B<--force>\"\n\n#~ msgid \"B<-w>, B<--wtmp-only>\"\n#~ msgstr \"B<-w>, B<--wtmp-only>\"\n\n#~ msgid \"B<-d>, B<--no-wtmp>\"\n#~ msgstr \"B<-d>, B<--no-wtmp>\"\n\n#~ msgid \"B<-n>, B<--no-sync>\"\n#~ msgstr \"B<-n>, B<--no-sync>\"\n\n#~ msgid \"B<--no-wall>\"\n#~ msgstr \"B<--no-wall>\"\n\n#~ msgid \"On success, 0 is returned, a non-zero failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"En caso de éxito se devuelve 0, en caso contrario un código de fallo \"\n#~ \"diferente de cero\\\\&.\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n\n#, fuzzy, no-wrap\n#~ msgid \"systemd 250\"\n#~ msgstr \"systemd 249\"\n\n#, no-wrap\n#~ msgid \"2021-06-02\"\n#~ msgstr \"2 Junio 2021\"\n\n#, no-wrap\n#~ msgid \"util-linux 2.37.2\"\n#~ msgstr \"util-linux 2.37.2\"\n\n#~ msgid \"B<last> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<last> [opciones] [I<usuario>...] [I<tty>...]\"\n\n#~ msgid \"B<lastb> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<lastb> [opciones] [I<usuario>...] [I<tty>...]\"\n\n#~ msgid \"\"\n#~ \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#~ \"designated by the B<-f> option) and displays a list of all users logged \"\n#~ \"in (and out) since that file was created. One or more I<usernames> and/or \"\n#~ \"I<ttys> can be given, in which case B<last> will show only the entries \"\n#~ \"matching those arguments. Names of I<ttys> can be abbreviated, thus \"\n#~ \"B<last 0> is the same as B<last tty0>.\"\n#~ msgstr \"\"\n#~ \"B<last> analiza el contenido del archivo I</var/log/wtmp> (o el que se \"\n#~ \"haya indicada mediante la opción B<-f>) y muestra un listado con los \"\n#~ \"usuarios conectados (y desconectados) desde la creación de dicho archivo. \"\n#~ \"Es posible indicar uno o más I<nombres_de_usuario> y/o I<ttys>, en cuyo \"\n#~ \"caso solo se mostrarán las entradas que coincidan con éstos patrones. \"\n#~ \"También cabe la posibilidad de abreviar los nombres de los I<ttys>, por \"\n#~ \"ejemplo B<last0> es lo mismo que B<last tty0>.\"\n\n#~ msgid \"\"\n#~ \"When catching a B<SIGINT> signal (generated by the interrupt key, usually \"\n#~ \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#~ \"through the file; in the case of the B<SIGINT> signal B<last> will then \"\n#~ \"terminate.\"\n#~ msgstr \"\"\n#~ \"Si B<last> recibe una señal B<SIGINT> (creada por una solicitud de \"\n#~ \"interrupción, generalmente con Control-C) o SIGQUIT; se mostrará en qué \"\n#~ \"punto estaba el análisis. En el caso de haber recibido la señal \"\n#~ \"B<SIGINT>, el proceso finalizará.\"\n\n#~ msgid \"\"\n#~ \"The pseudo user B<reboot> logs in each time the system is rebooted. Thus \"\n#~ \"B<last reboot> will show a log of all the reboots since the log file was \"\n#~ \"created.\"\n#~ msgstr \"\"\n#~ \"El pseudo-usuario B<reboot> accede al sistema cada vez que se reinicia el \"\n#~ \"equipo, por lo tanto B<last reboot> mostrará una lista de todos los \"\n#~ \"reinicios desde la creación del archivo.\"\n\n#~ msgid \"B<-a>, B<--hostlast>\"\n#~ msgstr \"B<-a>,B< --hostlast>\"\n\n#~ msgid \"B<-d>, B<--dns>\"\n#~ msgstr \"B<-d>,B< --dns>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>. The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"Indica a B<last> que debe usar el I<archivo> indicado en lugar de I</var/\"\n#~ \"log/wtmp>. Es posible indicar varios archivos usando varias veces la \"\n#~ \"opción B<--file>, procesándose así todos los archivos indicados.\"\n\n#~ msgid \"B<-F>, B<--fulltimes>\"\n#~ msgstr \"B<-F>,B< --fulltimes>\"\n\n#~ msgid \"B<-i>, B<--ip>\"\n#~ msgstr \"B<-i>,B< --ip>\"\n\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host\\\\(cqs IP number instead of the name.\"\n#~ msgstr \"\"\n#~ \"Igual que B<--dns>, pero muestra la dirección IP del equipo en lugar de \"\n#~ \"su nombre.\"\n\n#~ msgid \"B<->I<number>; B<-n>, B<--limit> I<number>\"\n#~ msgstr \"B<->I<cantidad>; B<-n>, B<--limit> I<cantidad>\"\n\n#~ msgid \"B<-p>, B<--present> I<time>\"\n#~ msgstr \"B<-p>,B< --present >I<fecha_y_hora>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time. This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"Muestra los usuario conectados en la fecha y hora indicados. Coincide con \"\n#~ \"el uso de B<--since> y B<--until> indicando en ambos la misma \"\n#~ \"I<fecha_y_hora>.\"\n\n#~ msgid \"B<-R>, B<--nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#~ msgid \"B<-s>, B<--since> I<time>\"\n#~ msgstr \"B<-s>,B< --since >I<fecha_y_hora>\"\n\n#~ msgid \"\"\n#~ \"Display the state of logins since the specified I<time>. This is useful, \"\n#~ \"e.g., to easily determine who was logged in at a particular time. The \"\n#~ \"option is often combined with B<--until>.\"\n#~ msgstr \"\"\n#~ \"Muestra la situación de los accesos a partir del la I<fecha_y_hora> \"\n#~ \"indicados. Esto suele ser útil para ver quien accedió al sistema en un \"\n#~ \"instante determinado. Esta opción suele combinarse con B<--until>.\"\n\n#~ msgid \"B<-t>, B<--until> I<time>\"\n#~ msgstr \"B<-t>, B< --until >I<fecha_y_hora>\"\n\n#~ msgid \"Display the state of logins until the specified I<time>.\"\n#~ msgstr \"\"\n#~ \"Muesta la situación de los accesos hasta la I<fecha_y_hora> indicados.\"\n\n#~ msgid \"B<--time-format> I<format>\"\n#~ msgstr \"B<--time-format>I< formato>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>. The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option. The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format. The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"Define el I<formato> de fecha y hora que se mostrará. Puede ser \"\n#~ \"I<notime>, I<short>, I<full> o I<iso>. La opción I<notime> no mostrará \"\n#~ \"ninguna información de este tipo, I<short> es la opción por defecto y \"\n#~ \"I<full> es lo mismo que B<--fulltime>. La opción B<iso> mostrará la fecha \"\n#~ \"y hora en formato ISO-8601 que contiene información sobre la zona horaria \"\n#~ \"resultando especialmente útil cuando se investigan accesos desde otros \"\n#~ \"equipos.\"\n\n#~ msgid \"B<-w>, B<--fullnames>\"\n#~ msgstr \"B<-w>, B< --fullnames>\"\n\n#~ msgid \"B<-x>, B<--system>\"\n#~ msgstr \"B<-x>, B< --system>\"\n\n#, no-wrap\n#~ msgid \"TIME FORMATS\"\n#~ msgstr \"FORMATOS DE FECHA Y HORA\"\n\n#~ msgid \"\"\n#~ \"The options that take the I<time> argument understand the following \"\n#~ \"formats:\"\n#~ msgstr \"\"\n#~ \"El argumento I<fecha_y_hora> puede expresarse en los siguientes formatos:\"\n\n#, no-wrap\n#~ msgid \".sp\\n\"\n#~ msgstr \".sp\\n\"\n\n#, no-wrap\n#~ msgid \"YYYYMMDDhhmmss\"\n#~ msgstr \"AAAAMMDDhhmmss\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm:ss\"\n#~ msgstr \"AAAA-MM-DD hh:mm:ss\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm\"\n#~ msgstr \"AAAA-MM-DD hh:mm\"\n\n#, no-wrap\n#~ msgid \"(seconds will be set to 00)\"\n#~ msgstr \"(se definen los segundo a 00)\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD\"\n#~ msgstr \"AAAA-MM-DD\"\n\n#, no-wrap\n#~ msgid \"(time will be set to 00:00:00)\"\n#~ msgstr \"(la horas se definirá como 00:00:00)\"\n\n#, no-wrap\n#~ msgid \"hh:mm:ss\"\n#~ msgstr \"hh:mm:ss\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today)\"\n#~ msgstr \"(se usará la fecha de hoy)\"\n\n#, no-wrap\n#~ msgid \"hh:mm\"\n#~ msgstr \"hh:mm\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today, seconds to 00)\"\n#~ msgstr \"(se usa la fecha de hoy y los segundo a 00)\"\n\n#, no-wrap\n#~ msgid \"now\"\n#~ msgstr \"now\"\n\n#, no-wrap\n#~ msgid \"yesterday\"\n#~ msgstr \"yesterday\"\n\n#, no-wrap\n#~ msgid \"(time is set to 00:00:00)\"\n#~ msgstr \"(se define la hora a 00:00:00)\"\n\n#, no-wrap\n#~ msgid \"today\"\n#~ msgstr \"today\"\n\n#, no-wrap\n#~ msgid \"tomorrow\"\n#~ msgstr \"tomorrow\"\n\n#, no-wrap\n#~ msgid \"+5min\"\n#~ msgstr \"+5min\"\n\n#, no-wrap\n#~ msgid \"-5days\"\n#~ msgstr \"-5days\"\n\n#~ msgid \"I</var/log/wtmp>, I</var/log/btmp>\"\n#~ msgstr \"I</var/log/wtmp>, I</var/log/btmp>\"\n\n#, no-wrap\n#~ msgid \"AUTHORS\"\n#~ msgstr \"AUTORES\"\n\n#~ msgid \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n#~ msgstr \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"REPORTING BUGS\"\n#~ msgstr \"INFORMAR DE ERRORES\"\n\n#~ msgid \"For bug reports, use the issue tracker at\"\n#~ msgstr \"\"\n#~ \"Para informar de cualquier error, utilice el sistema de seguimiento de \"\n#~ \"fallos\"\n\n#, no-wrap\n#~ msgid \"AVAILABILITY\"\n#~ msgstr \"DISPONIBILIDAD\"\n\n#~ msgid \"\"\n#~ \"The B<last> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"La orden B<last> forma parte del paquete util-linux que puede ser \"\n#~ \"descargado\"\n\n#, no-wrap\n#~ msgid \"October 2013\"\n#~ msgstr \"Octubre de 2013\"\n\n#, no-wrap\n#~ msgid \"util-linux\"\n#~ msgstr \"util-linux\"\n\n#, no-wrap\n#~ msgid \"B<-a>,B< --hostlast>\"\n#~ msgstr \"B<-a>,B< --hostlast>\"\n\n#~ msgid \"\"\n#~ \"Display the hostname in the last column.  Useful in combination with the \"\n#~ \"B<--dns> option.\"\n#~ msgstr \"\"\n#~ \"Muestra el nombre del equipo en la última columna. Suele usarse en \"\n#~ \"conjunción con la opción B<--dns>.\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --dns>\"\n#~ msgstr \"B<-d>,B< --dns>\"\n\n#~ msgid \"\"\n#~ \"For non-local logins, Linux stores not only the host name of the remote \"\n#~ \"host, but its IP number as well.  This option translates the IP number \"\n#~ \"back into a hostname.\"\n#~ msgstr \"\"\n#~ \"Para el caso de accesos desde otros equipos, Linux no solo guarda el \"\n#~ \"nombre del equipo remoto sino también su dirección IP. Esta opción \"\n#~ \"convierte esa dirección IP en un nombre de equipo.\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --file >I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<archivo>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>.  The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"Indica a B<last> que debe usar el archivo indicado en lugar de I</var/log/\"\n#~ \"wtmp>. Es posible indicar varios archivos usando varias veces la opción \"\n#~ \"B<--file>, se procesarán así todos los archivos indicados.\"\n\n#, no-wrap\n#~ msgid \"B<-F>,B< --fulltimes>\"\n#~ msgstr \"B<-F>,B< --fulltimes>\"\n\n#, no-wrap\n#~ msgid \"B<-i>,B< --ip>\"\n#~ msgstr \"B<-i>,B< --ip>\"\n\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host's IP number instead of the name.\"\n#~ msgstr \"\"\n#~ \"Igual que B<--dns>, pero muestra la dirección IP del equipo en lugar de \"\n#~ \"su nombre.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgstr \"B<-n>,B< --limit >I<cantidad>\"\n\n#, no-wrap\n#~ msgid \"B<-p>,B< --present >I<time>\"\n#~ msgstr \"B<-p>,B< --present >I<fecha_y_hora>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time.  This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"Muestra los usuario conectados en la fecha y hora indicados. Coincide con \"\n#~ \"el uso de B<--since> y B<--until> indicando en ambos el mismo momento.\"\n\n#, no-wrap\n#~ msgid \"B<-R>,B< --nohostname>\"\n#~ msgstr \"B<-R>,B< --nohostname>\"\n\n#, no-wrap\n#~ msgid \"B<-s>,B< --since >I<time>\"\n#~ msgstr \"B<-s>,B< --since >I<fecha_y_hora>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --until >I<time>\"\n#~ msgstr \"B<-t>,B< --until >I<fecha_y_hora>\"\n\n#, no-wrap\n#~ msgid \"B<--time-format>I< format>\"\n#~ msgstr \"B<--time-format>I< formato>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>.  The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option.  The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format.  The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"Define el formato de fecha y hora que se mostrará. Puede ser I<notime>, \"\n#~ \"I<short>, I<full> o I<iso>. La opción I<notime> no mostrará ninguna \"\n#~ \"información de este tipo, I<short> es la opción por defecto y I<full> es \"\n#~ \"lo mismo que B<--fulltime>. La opción B<iso> mostrará la fecha y hora en \"\n#~ \"formato ISO-8601 que contiene información sobre la zona horaria \"\n#~ \"resultando especialmente útil cuando se investigan accesos desde otros \"\n#~ \"equipos.\"\n\n#, no-wrap\n#~ msgid \"B<-w>,B< --fullnames>\"\n#~ msgstr \"B<-w>,B< --fullnames>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --system>\"\n#~ msgstr \"B<-x>,B< --system>\"\n\n#~ msgid \"\"\n#~ \"The files I<wtmp> and I<btmp> might not be found.  The system only logs \"\n#~ \"information in these files if they are present.  This is a local \"\n#~ \"configuration issue.  If you want the files to be used, they can be \"\n#~ \"created with a simple B<touch>(1)  command (for example, I<touch /var/log/\"\n#~ \"wtmp>).\"\n#~ msgstr \"\"\n#~ \"Es posible que los archivos I<wtmp> y I<btmp> no se encuentren en el \"\n#~ \"equipo. Observe que el mismo solo registrará información en estos \"\n#~ \"archivos si existen, esto sería un error en la configuración que se \"\n#~ \"subsanaría simplemente creándolos con la orden B<touch>(1), es decir \"\n#~ \"ejecutando I<touch /var/log/wtmp>.\"\n\n#~ msgid \"\"\n#~ \"The last command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"La orden last es parte del paquete util-linux, está disponible en: E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> Linux \"\n#~ \"Kernel Archive E<.UE .>\"\n\n#, fuzzy\n#~ msgid \"mesg - display (or do not display) messages from other users\"\n#~ msgstr \"mesg - controla el acceso de escritura a tu terminal\"\n\n#, fuzzy\n#~| msgid \"B<mesg> [option] [B<n>|B<y>]\"\n#~ msgid \"B<mesg> [I<option>] [B<n>|B<y>]\"\n#~ msgstr \"B<mesg> [opción] [B<n>|B<y>]\"\n\n#, fuzzy\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output. If \"\n#~ \"write access is allowed, then programs such as B<talk>(1) and B<write>(1) \"\n#~ \"may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"B<Mesg> controla el acceso a tu terminal por otros. Generalmente es usado \"\n#~ \"para permitir o negar a otros usuarios la escritura en el terminal (vea \"\n#~ \"B<write>(1)).\"\n\n#, no-wrap\n#~ msgid \"ARGUMENTS\"\n#~ msgstr \"ARGUMENTOS\"\n\n#, fuzzy\n#~ msgid \"Disallow messages.\"\n#~ msgstr \"Niega el acceso a escritura al terminal.\"\n\n#, fuzzy\n#~ msgid \"Allow messages to be displayed.\"\n#~ msgstr \"Permite el acceso a escritura al terminal.\"\n\n#~ msgid \"B<-v>, B<--verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-V>, B<--version>\"\n#~ msgstr \"B<-V>, B<--version>\"\n\n#~ msgid \"Display version information and exit.\"\n#~ msgstr \"Mostrar información de versión y finalizar.\"\n\n#, no-wrap\n#~ msgid \"B<-h>, B<--help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#~ msgid \"Display help text and exit.\"\n#~ msgstr \"Mostrar texto de ayuda y finalizar.\"\n\n#, no-wrap\n#~ msgid \"B<E<gt>1>\"\n#~ msgstr \"B<E<gt>1>\"\n\n#~ msgid \"I</dev/[pt]ty[pq]?>\"\n#~ msgstr \"I</dev/[pt]ty[pq]?>\"\n\n#, no-wrap\n#~ msgid \"HISTORY\"\n#~ msgstr \"HISTORIAL\"\n\n#~ msgid \"A B<mesg> command appeared in Version 6 AT&T UNIX.\"\n#~ msgstr \"Una orden B<mesg> apareció en la Versión 6 del UNIX de AT&T.\"\n\n#, no-wrap\n#~ msgid \"July 2014\"\n#~ msgstr \"Julio 2014\"\n\n#, fuzzy\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output.  If \"\n#~ \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~ \"B<write>(1)  may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"B<Mesg> controla el acceso a tu terminal por otros. Generalmente es usado \"\n#~ \"para permitir o negar a otros usuarios la escritura en el terminal (vea \"\n#~ \"B<write>(1)).\"\n\n#, no-wrap\n#~ msgid \"B<-v>,B< --verbose>\"\n#~ msgstr \"B<-v>,B< --verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-V>,B< --version>\"\n#~ msgstr \"B<-V>,B< --version>\"\n\n#, no-wrap\n#~ msgid \"B<-h>,B< --help>\"\n#~ msgstr \"B<-h>,B< --help>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 0>\"\n#~ msgstr \"B<\\\\ 0>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 1>\"\n#~ msgstr \"B<\\\\ 1>\"\n\n#, no-wrap\n#~ msgid \"runlevel\"\n#~ msgstr \"runlevel\"\n\n#, no-wrap\n#~ msgid \".T&\"\n#~ msgstr \".T&\"\n\n#, no-wrap\n#~ msgid \"l l\"\n#~ msgstr \"l l\"\n\n#, no-wrap\n#~ msgid \"l l.\"\n#~ msgstr \"l l.\"\n\n#, no-wrap\n#~ msgid \"0\"\n#~ msgstr \"0\"\n\n#, no-wrap\n#~ msgid \"poweroff\\\\&.target\"\n#~ msgstr \"poweroff\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"rescue\\\\&.target\"\n#~ msgstr \"rescue\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"2, 3, 4\"\n#~ msgstr \"2, 3, 4\"\n\n#, no-wrap\n#~ msgid \"multi-user\\\\&.target\"\n#~ msgstr \"multi-user\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"5\"\n#~ msgstr \"5\"\n\n#, no-wrap\n#~ msgid \"graphical\\\\&.target\"\n#~ msgstr \"graphical\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"6\"\n#~ msgstr \"6\"\n\n#, no-wrap\n#~ msgid \"reboot\\\\&.target\"\n#~ msgstr \"reboot\\\\&.target\"\n\n#, fuzzy\n#~| msgid \"On success, 0 is returned, a non-zero failure code otherwise\\\\&.\"\n#~ msgid \"\"\n#~ \"If one or both runlevels could be determined, 0 is returned, a non-zero \"\n#~ \"failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"En caso de éxito se devuelve 0, en caso contrario un código de fallo \"\n#~ \"diferente de cero\\\\&.\"\n\n#~ msgid \"I<$RUNLEVEL>\"\n#~ msgstr \"I<$RUNLEVEL>\"\n\n#~ msgid \"I<$PREVLEVEL>\"\n#~ msgstr \"I<$PREVLEVEL>\"\n\n#~ msgid \"/run/utmp\"\n#~ msgstr \"/run/utmp\"\n\n#~ msgid \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n\n#~ msgid \"B<-H>, B<--halt>\"\n#~ msgstr \"B<-H>, B<--halt>\"\n\n#~ msgid \"B<-P>, B<--poweroff>\"\n#~ msgstr \"B<-P>, B<--poweroff>\"\n\n#~ msgid \"B<-r>, B<--reboot>\"\n#~ msgstr \"B<-r>, B<--reboot>\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<halt>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<halt>(8), B<wall>(1)\"\n\n#, fuzzy\n#~| msgid \"B<--si>\"\n#~ msgid \"B<--show>\"\n#~ msgstr \"B<--si>\"\n\n#, no-wrap\n#~ msgid \"System Administration\"\n#~ msgstr \"Administración del sistema\"\n\n#~ msgid \"B<sulogin> [options] [I<tty>]\"\n#~ msgstr \"B<sulogin> [opciones] [I<tty>]\"\n\n#, fuzzy\n#~| msgid \"Give root password for system maintenance\"\n#~ msgid \"\"\n#~ \"Give root password for system maintenance (or type Control-D for normal \"\n#~ \"startup):\"\n#~ msgstr \"Introduciendo la clave de root para su mantenimiento\"\n\n#, no-wrap\n#~ msgid \"B<-e>, B<--force>\"\n#~ msgstr \"B<-e>, B<--force>\"\n\n#, no-wrap\n#~ msgid \"B<-p>, B<--login-shell>\"\n#~ msgstr \"B<-p>, B<--login-shell>\"\n\n#, fuzzy\n#~| msgid \"B<-t>, B<--timeout >I<seconds>\"\n#~ msgid \"B<-t>, B<--timeout> I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout >I<segundos>\"\n\n#, no-wrap\n#~ msgid \"B<-t>, B<--timeout >I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout >I<segundos>\"\n\n#, fuzzy\n#~| msgid \"B<-n>,B< --nobanner>\"\n#~ msgid \"B<-n>, B<--nobanner>\"\n#~ msgstr \"B<-n>,B< --nobanner>\"\n\n#, fuzzy\n#~| msgid \"B<-f>, B<--silent>, B<--quiet>\"\n#~ msgid \"B<-t>, B<--timeout> I<timeout>\"\n#~ msgstr \"B<-f>, B<--silent>, B<--quiet>\"\n\n#, fuzzy\n#~| msgid \"B<-g>,B< --group >I<group>\"\n#~ msgid \"B<-g>, B<--group> I<group>\"\n#~ msgstr \"B<-g>,B< --group >I<grupo>\"\n\n#, fuzzy\n#~| msgid \"A E<.Nm> command appeared in E<.At v7>.\"\n#~ msgid \"A B<wall> command appeared in Version 7 AT&T UNIX.\"\n#~ msgstr \"La orden E<.Nm> apareció en E<.At v7>.\"\n\n#, no-wrap\n#~ msgid \"August 2013\"\n#~ msgstr \"Agosto 2013\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --nobanner>\"\n#~ msgstr \"B<-n>,B< --nobanner>\"\n\n#, no-wrap\n#~ msgid \"B<-g>,B< --group >I<group>\"\n#~ msgstr \"B<-g>,B< --group >I<grupo>\"\n"
  },
  {
    "path": "man/po/fi.po",
    "content": "# Finnish translation of the sysvinit man pages.\n# Juha-Pekka Syrjälä <jsyrjala@iki.fi>, 1998.\n# Sami Kuhmonen <sami@iqs.fi>, 1998.\n# Tuukka Forssell <taf@jytol.fi>, 1998.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-01 15:59-0300\\n\"\n\"PO-Revision-Date: 1998-04-10 11:01+0200\\n\"\n\"Last-Translator: Tuukka Forssell <taf@jytol.fi>\\n\"\n\"Language-Team: Finnish <>\\n\"\n\"Language: fi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21. heinäkuuta 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, fuzzy, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NIMI\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"YLEISKATSAUS\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"KUVAUS\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"VALITSIMET\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-f>, B<--file> I<tiedostonimi>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-f>, B<--file> I<tiedostonimi>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"HUOMAUTUKSET\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"BUGIT\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"TEKIJÄ\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"KATSO MYÖS\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"toukokuu 2006\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"POISTUMISEN TILA\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"ESIMERKKEJÄ\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"6. marraskuuta 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29. heinäkuuta 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [ B<-t> I<SEKUNTIA> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"F(AIL)\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"O(K)\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"L(OW)\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> tai B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:172\n#, no-wrap\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:175\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> tai B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> tai B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> tai B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"YMPÄRISTÖ\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s, S, single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1-5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b, emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a, auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z >I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"TIEDOSTOT\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"13. huhtikuuta 2018\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10. heinäkuuta 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript.\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4. joulukuuta 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:70\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4. marraskuuta 2003\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../killall5.8:35\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-f>, B<--file> I<tiedostonimi>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"31. heinäkuuta 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:61\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<tiedostonimi>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, fuzzy, no-wrap\n#| msgid \"B<->I<number>\"\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<num>\"\n\n#. type: Plain text\n#: ../last.1:75\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:75\n#, fuzzy, no-wrap\n#| msgid \"B<->I<number>\"\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<->I<num>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"26. helmikuuta 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Käyttäjän sovellukset\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\n#, fuzzy\n#| msgid \"\"\n#| \"If no arguments are given, B<mesg> shows the current message status on \"\n#| \"standard error output.\"\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Jos mitään vakiota ei annetta, B<mesg> tulostaa ruutusi tämänhetkisen oikeus \"\n\"tason.\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"MOUNTPOINT\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"15. maaliskuuta 2004\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1. syyskuuta 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:36\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"12. marraskuuta 2018\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<tiedostonimi\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"27. toukokuuta 1997\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:24\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"12. marraskuuta 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\nmsgid \"When to shutdown.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\nmsgid \"Message to send to all users.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"B<shutdown: no authorized users logged in>\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"17. tammikuuta 2006\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, no-wrap\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"8. helmikuuta 2010\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"B<utmpdump> [B<-froh>] I<tiedostonimi>\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"15. huhtikuuta 2003\"\n\n#. type: Plain text\n#: ../wall.1:22\n#, fuzzy\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - lähettää viestin jokaiseen istuntoon päätteille\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, no-wrap\n#~ msgid \"B<a>,\"\n#~ msgstr \"B<a>,\"\n\n#, fuzzy, no-wrap\n#~| msgid \"LAST, LASTB\"\n#~ msgid \"LAST,LASTB\"\n#~ msgstr \"LAST, LASTB\"\n\n#, no-wrap\n#~ msgid \"2021-06-02\"\n#~ msgstr \"2. kesäkuuta 2021\"\n\n#, no-wrap\n#~ msgid \"util-linux 2.37.2\"\n#~ msgstr \"util-linux 2.37.2\"\n\n#~ msgid \"B<last> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<last> [valitsin] [I<tiedostonimi>...] [I<tty>...]\"\n\n#~ msgid \"B<lastb> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<lastb> [valitsin] [I<tiedostonimi>...] [I<tty>...]\"\n\n#~ msgid \"B<-a>, B<--hostlast>\"\n#~ msgstr \"B<-a>, B<--hostlast>\"\n\n#~ msgid \"B<-d>, B<--dns>\"\n#~ msgstr \"B<-d>, B<--dns>\"\n\n#~ msgid \"B<-F>, B<--fulltimes>\"\n#~ msgstr \"B<-F>, B<--fulltimes>\"\n\n#~ msgid \"B<-i>, B<--ip>\"\n#~ msgstr \"B<-i>, B<--ip>\"\n\n#~ msgid \"B<-p>, B<--present> I<time>\"\n#~ msgstr \"B<-p>, B<--present> I<kellonaika>\"\n\n#~ msgid \"B<-R>, B<--nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#~ msgid \"B<-s>, B<--since> I<time>\"\n#~ msgstr \"B<-s>, B<--since> I<kellonaika>\"\n\n#~ msgid \"B<-t>, B<--until> I<time>\"\n#~ msgstr \"B<-t>, B<--until> I<kellonaika>\"\n\n#~ msgid \"B<--time-format> I<format>\"\n#~ msgstr \"B<--time-format> I<formaatti>\"\n\n#~ msgid \"B<-w>, B<--fullnames>\"\n#~ msgstr \"B<-w>, B<--fullnames>\"\n\n#~ msgid \"B<-x>, B<--system>\"\n#~ msgstr \"B<-x>, B<--system>\"\n\n#, no-wrap\n#~ msgid \".sp\\n\"\n#~ msgstr \".sp\\n\"\n\n#~ msgid \"I</var/log/wtmp>, I</var/log/btmp>\"\n#~ msgstr \"I</var/log/wtmp>, I</var/log/btmp>\"\n\n#~ msgid \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n#~ msgstr \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"REPORTING BUGS\"\n#~ msgstr \"VIRHEISTÄ ILMOITTAMINEN\"\n\n#, no-wrap\n#~ msgid \"AVAILABILITY\"\n#~ msgstr \"SAATAVUUS\"\n\n#, no-wrap\n#~ msgid \"October 2013\"\n#~ msgstr \"Lokakuuta 2013\"\n\n#, no-wrap\n#~ msgid \"util-linux\"\n#~ msgstr \"util-linux\"\n\n#, no-wrap\n#~ msgid \"B<-a>,B< --hostlast>\"\n#~ msgstr \"B<-a>,B< --hostlast>\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --dns>\"\n#~ msgstr \"B<-d>,B< --dns>\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --file >I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<tiedosto>\"\n\n#, no-wrap\n#~ msgid \"B<-F>,B< --fulltimes>\"\n#~ msgstr \"B<-F>,B< --fulltimes>\"\n\n#, no-wrap\n#~ msgid \"B<-i>,B< --ip>\"\n#~ msgstr \"B<-i>,B< --ip>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"B<-N>, B<--literal>\"\n#~ msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgstr \"B<-N>, B<--literal>\"\n\n#, no-wrap\n#~ msgid \"B<-p>,B< --present >I<time>\"\n#~ msgstr \"B<-p>,B< --present >I<kellonaika>\"\n\n#, no-wrap\n#~ msgid \"B<-R>,B< --nohostname>\"\n#~ msgstr \"B<-R>,B< --nohostname>\"\n\n#, no-wrap\n#~ msgid \"B<-s>,B< --since >I<time>\"\n#~ msgstr \"B<-s>,B< --since >I<kellonaika>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --until >I<time>\"\n#~ msgstr \"B<-t>,B< --until >I<kellonaika>\"\n\n#, no-wrap\n#~ msgid \"B<--time-format>I< format>\"\n#~ msgstr \"B<--time-format>I< formaatti>\"\n\n#, no-wrap\n#~ msgid \"B<-w>,B< --fullnames>\"\n#~ msgstr \"B<-w>,B< --fullnames>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --system>\"\n#~ msgstr \"B<-x>,B< --system>\"\n\n#, fuzzy\n#~ msgid \"mesg - display (or do not display) messages from other users\"\n#~ msgstr \"mesg - kontrolloi oikeuksia kirjoittaa ruudullesi\"\n\n#~ msgid \"B<mesg> [I<option>] [B<n>|B<y>]\"\n#~ msgstr \"B<mesg> [I<valitsin>] [B<n>|B<y>]\"\n\n#, fuzzy\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output. If \"\n#~ \"write access is allowed, then programs such as B<talk>(1) and B<write>(1) \"\n#~ \"may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"B<Mesg> kontrolloi muiden käyttäjien oikeuksia kirjoittaa ruudullesi. \"\n#~ \"Voit sallia/estää kirjoittamisen ruudullesi I<write(1)> komennolla.\"\n\n#, no-wrap\n#~ msgid \"ARGUMENTS\"\n#~ msgstr \"ARGUMENTIT\"\n\n#~ msgid \"Disallow messages.\"\n#~ msgstr \"Estää ruudulle kirjoittamisen.\"\n\n#~ msgid \"Allow messages to be displayed.\"\n#~ msgstr \"Sallii kirjoittamisen ruudullesi.\"\n\n#~ msgid \"B<-v>, B<--verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#~ msgid \"Explain what is being done.\"\n#~ msgstr \"Selitä mitä tapahtuu.\"\n\n#~ msgid \"Display version information and exit.\"\n#~ msgstr \"Näytä ohjelman versiotiedot ja poistu.\"\n\n#~ msgid \"B<-h>, B<--help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#, fuzzy\n#~ msgid \"Display help text and exit.\"\n#~ msgstr \"näytä tämä ohje ja poistu\"\n\n#, no-wrap\n#~ msgid \"B<E<gt>1>\"\n#~ msgstr \"B<E<gt>1>\"\n\n#~ msgid \"I</dev/[pt]ty[pq]?>\"\n#~ msgstr \"I</dev/[pt]ty[pq]?>\"\n\n#, no-wrap\n#~ msgid \"HISTORY\"\n#~ msgstr \"HISTORIA\"\n\n#, fuzzy\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output.  If \"\n#~ \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~ \"B<write>(1)  may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"B<Mesg> kontrolloi muiden käyttäjien oikeuksia kirjoittaa ruudullesi. \"\n#~ \"Voit sallia/estää kirjoittamisen ruudullesi I<write(1)> komennolla.\"\n\n#, no-wrap\n#~ msgid \"B<-v>,B< --verbose>\"\n#~ msgstr \"B<-v>,B< --verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-h>,B< --help>\"\n#~ msgstr \"B<-h>,B< --help>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 0>\"\n#~ msgstr \"B<\\\\ 0>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 1>\"\n#~ msgstr \"B<\\\\ 1>\"\n\n#~ msgid \"B<-n>, B<--nobanner>\"\n#~ msgstr \"B<-n>, B<--nobanner>\"\n\n#, fuzzy\n#~| msgid \"B<-t>, B<--time>\"\n#~ msgid \"B<-t>, B<--timeout> I<timeout>\"\n#~ msgstr \"B<-t>, B<--time>\"\n\n#~ msgid \"B<-g>, B<--group> I<group>\"\n#~ msgstr \"B<-g>, B<--group> I<ryhmä>\"\n\n#, no-wrap\n#~ msgid \"August 2013\"\n#~ msgstr \"Elokuu 2013\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --nobanner>\"\n#~ msgstr \"B<-n>,B< --nobanner>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"B<-t>, B<--time>\"\n#~ msgid \"B<-t>,B< --timeout >I<timeout>\"\n#~ msgstr \"B<-t>, B<--time>\"\n\n#, no-wrap\n#~ msgid \"B<-g>,B< --group >I<group>\"\n#~ msgstr \"B<-g>,B< --group >I<ryhmä>\"\n"
  },
  {
    "path": "man/po/fr.po",
    "content": "# French translation of the sysvinit man pages.\n# carmie\n# Michel Quercia <quercia AT cal DOT enst DOT fr>, 1997.\n# Thierry Vignaud <tvignaud@mandriva.com>, 1999-2000.\n# Philippe Batailler, 2000.\n# Christophe Sauthier <christophe@sauthier.com>, 2001.\n# Danny <dannybrain@noos.fr>, 2001.\n# Sébastien Blanchet, 2002.\n# Frédéric Delanoy <delanoy_f@yahoo.com>, 2000-2002.\n# Gérard Delafond <gerard@delafond.org>, 2001, 2003.\n# Christophe Blaess <ccb@club-internet.fr>, 1997, 2002-2003.\n# Aymeric Nys <aymeric AT nnx POINT com>, 2004.\n# Jérôme Perzyna <jperzyna@yahoo.fr>, 2004.\n# Éric Piel <eric.piel@tremplin-utc.net>, 2005.\n# François Wendling <frwendling@free.fr>, 2005.\n# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006.\n# Jade Alglave <jade.alglave@ens-lyon.org>, 2006.\n# Nicolas Haller <nicolas@boiteameuh.org>, 2006.\n# Philippe Piette <foudre-blanche@skynet.be>, 2006.\n# Valéry Perrin <valery.perrin.debian@free.fr>, 2006.\n# Sylvain Archenault <sylvain.archenault@laposte.net>, 2006.\n# Julien Cristau <jcristau@debian.org>, 2006.\n# Jean-Baka Domelevo-Entfellner <domelevo@gmail.com>, 2006.\n# Yves Rütschlé <l10n@rutschle.net>, 2006.\n# Alain Portal <aportal@univ-montp2.fr>, 2005-2006.\n# Nicolas François <nicolas.francois@centraliens.net>, 2007.\n# Lyes Zemmouche <iliaas@hotmail.fr>, 2008.\n# Alexandre Kuoch <alex.kuoch@gmail.com>, 2008.\n# Alexandre Normand <aj.normand@free.fr>, 2010.\n# Florentin Duneau <fduneau@gmail.com>, 2006, 2008-2010.\n# Romain Doumenc <rd6137@gmail.com>, 2011.\n# Thomas Vincent <tvincent@debian.org>, 2012-2014.\n# David Prévot <david@tilapin.org>, 2010-2015.\n# Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>, 2020-2021.\n# Jean-Philippe MENGUAL <jpmengual@debian.org>, 2020-2021.\n# Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>, 2020-2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-01 15:59-0300\\n\"\n\"PO-Revision-Date: 2021-05-10 12:28+0200\\n\"\n\"Last-Translator: Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>\\n\"\n\"Language-Team: French <debian-l10n-french@lists.debian.org>\\n\"\n\"Language: fr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21 juillet 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, fuzzy, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"Manuel de l’Administrateur de Système Linux\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NOM\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"bootlogd – Enregistrer les messages au démarrage\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"SYNOPSIS\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< fichier_journal >] [I< >B<-p>I< fichier_pid >]\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIPTION\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\"B<bootlogd> fonctionne en arrière plan et copie toutes les chaînes envoyées \"\n\"au périphérique I</dev/console> dans un fichier journal. Si le \"\n\"I<fichier_journal> n'est pas disponible, les messages sont conservés en \"\n\"mémoire jusqu'à ce qu'il le soit.\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"OPTIONS\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"Ne pas fourcher et exécuter en arrière plan.\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\"Écrire les caractères d’échappement dans le fichier journal de démarrage. \"\n\"Cela empêche le filtrage des caractères d’échappement et permet à des outils \"\n\"comme B<less>(1) de GNU d’afficher des caractères de contrôle colorés \"\n\"(affichage du journal en couleur).\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\"Essayer d'écrire dans le fichier journal même s'il n'existe pas. Sans cette \"\n\"option, B<bootlogd> attendra que le fichier journal apparaisse avant \"\n\"d'essayer d'y écrire. Ce comportement permet d'éviter à B<bootlogd> de créer \"\n\"des fichiers journal sous les points de montage.\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\"Si un fichier journal I<fichier_journal> existe déjà, le renommer en \"\n\"I<fichier_journal~> à moins que I<fichier_journal~> n'existe déjà.\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\"S'assurer que les données sont écrites dans le fichier après chaque ligne en \"\n\"appelant B<fdatasync>(3). Cela ralentira un processus B<fsck>(8) qui \"\n\"s'exécuterait en parallèle.\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"Afficher la version.\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, no-wrap\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-l> I<fichier_journal>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\"Enregistrer dans ce fichier journal. La valeur par défaut est I</var/log/\"\n\"boot>.\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, no-wrap\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-p> I<fichier_pid>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\"Mettre l'identifiant du processus dans ce fichier. Par défaut, il n'y a pas \"\n\"de fichier de PID écrit.\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"NOTES\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\"B<bootlogd> enregistre les données de journal qui incluent des caractères de \"\n\"contrôle. Le journal est techniquement un fichier texte, mais n’est pas de \"\n\"lecture aisée. Pour remédier à cela, la commande B<readbootlog>(1) peut être \"\n\"utilisée pour afficher le journal de démarrage sans ces caractères de \"\n\"contrôle.\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"BOGUES\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\"B<bootlogd> fonctionne en redirigeant la sortie de la console du \"\n\"périphérique de la console (en conséquence, B<bootlogd> nécessite la gestion \"\n\"des pseudoterminaux (PTY) dans la configuration du noyau). Il copie cette \"\n\"sortie vers le périphérique réel de la console et vers un fichier journal. \"\n\"Il n'y a aucun moyen d'obtenir avec certitude le périphérique réel de la \"\n\"console si vous avez le nouveau type de périphérique I</dev/console> (numéro \"\n\"majeur 5, mineur 1). B<bootlogd> analyse donc la ligne de commande du noyau \"\n\"pour rechercher des lignes B<console=...> et en déduire le périphérique \"\n\"réel. Si cette syntaxe est changée par le noyau ou qu'un type de console \"\n\"inconnu de B<bootlogd> est utilisé, alors B<bootlogd> ne fonctionnera pas.\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"AUTEUR\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"VOIR AUSSI\"\n\n# NOTE: missing space\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"mai 2006\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\"fstab-decode - Exécuter une commande avec des paramètres encodés au format \"\n\"fstab\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"B<fstab-decode> I<COMMANDE> [I<PARAMÈTRE>]...\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\"B<fstab-decode> décode les échappements (tels que les caractères nouvelle \"\n\"ligne et autres espaces) des I<PARAMÈTRE>s indiqués et les utilise pour \"\n\"exécuter la I<COMMANDE>. L'échappement des paramètres utilise les mêmes \"\n\"règles que pour l'échappement des chemins de I</etc/fstab>, I</etc/mtab> et \"\n\"I</proc/mtab>.\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\"En substance, B<fstab-decode> peut être utilisé chaque fois que l'on veut \"\n\"passer de multiples paramètres à une commande comme une liste de paramètres \"\n\"en ligne de commande. Cela donne quelque chose comme ceci :\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\"/root\\n\"\n\"/mnt/disque_distant\\n\"\n\"/home\\n\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\"dans une longue liste de paramètres, « /root /mnt/disque_distant /home ».\\n\"\n\"Cela peut être utile lorsqu'on essaye de travailler avec plusieurs systèmes\\n\"\n\"de fichiers à la fois. Par exemple, il est possible de l'utiliser pour\\n\"\n\"démonter plusieurs partages NFS. Ce programme peut aussi supprimer les\\n\"\n\"espaces et d'autres caractères qui pourraient provoquer l'échec de\\n\"\n\"programmes tels que B<mount>(8) ou B<umount>(8).\\n\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"CODE DE RETOUR\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\"B<fstab-decode> se termine avec un code de retour de 127 si I<COMMANDE> n'a \"\n\"pas pu être exécutée. Sinon elle se termine avec le code de retour renvoyé \"\n\"par la I<COMMANDE>.\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"EXEMPLES\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\n#, fuzzy\n#| msgid \"\"\n#| \"The following example reads fstab, finds all instances of VFAT \"\n#| \"filesystems and\\n\"\n#| \"prints their mount points (argument 2 in the fstab file). fstab-decode \"\n#| \"then runs \\n\"\n#| \"the specified program, umount, and passes it the list of VFAT \"\n#| \"mountpoints. \\n\"\n#| \"This unmounts all VFAT partitions.\\n\"\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\"L'exemple suivant lit le fichier fstab, trouve toutes les instances des \"\n\"systèmes\\n\"\n\"de fichiers VFAT et affiche leur point de montage (paramètre 2 dans le \"\n\"fichier\\n\"\n\"fstab). fstab-decode exécute alors le programme spécifié, umount, et lui \"\n\"passe\\n\"\n\"la liste des points de montage VFAT. Cela démonte toutes les partitions \"\n\"VFAT.\\n\"\n\n# no-wrap\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, fuzzy, no-wrap\n#| msgid \"Dec 4, 2001\"\nmsgid \"Nov 6, 2001\"\nmsgstr \"4 décembre 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"DIAGNOSTICS\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29 juillet 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"init, telinit – Initialisation du contrôle des processus\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [ B<-t> I<SECONDES> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\"B<init> est le parent de tous les processus. Son rôle principal est de créer \"\n\"des processus à partir d'un script stocké dans I</etc/inittab> (consultez \"\n\"B<inittab>(5)). Ce fichier comporte généralement des entrées qui forcent \"\n\"B<init> à lancer des B<getty> sur chacune des lignes sur lesquelles des \"\n\"utilisateurs peuvent se connecter. Il contrôle également des processus \"\n\"autonomes nécessaires pour chaque système particulier.\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"NIVEAUX D'EXÉCUTION\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\"Un I<niveau d'exécution> est une configuration logicielle du système qui \"\n\"permet à seulement un certain groupe de processus d'exister. Les processus \"\n\"lancés par B<init> pour chacun de ces niveaux d'exécution sont définis dans \"\n\"le fichier I</etc/inittab>. B<init> peut être dans un des huit niveaux \"\n\"d'exécution : B<0\\\\(en6> et B<S> (alias B<s>). Le niveau d'exécution peut \"\n\"être modifié par un superutilisateur en exécutant B<telinit> qui envoie les \"\n\"signaux appropriés à B<init> lui indiquant dans quel niveau d'exécution se \"\n\"placer.\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\"Les niveaux d'exécution B<S>, B<0>, B<1> et B<6> sont réservés. Le niveau \"\n\"d'exécution B<S> est utilisé pour initialiser le système au démarrage. Lors \"\n\"du lancement du niveau d'exécution B<S> (au démarrage) ou B<1> (depuis un \"\n\"niveau d'exécution multiutilisateur), le système entre en « mode mono-\"\n\"utilisateur », après lequel le niveau d'exécution est B<S>. Le niveau \"\n\"d'exécution B<0> est utilisé pour arrêter le système ; le niveau \"\n\"d'exécution B<6> sert au redémarrage du système.\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\"Après avoir démarré dans le niveau B<S>, le système entre automatiquement \"\n\"dans un des niveaux multiutilisateurs B<2> à B<5>, à moins qu'il n'y ait eu \"\n\"des problèmes qui nécessitent une correction de la part d'un administrateur \"\n\"en mode mono-utilisateur. Normalement, après être entré en mode mono-\"\n\"utilisateur, un administrateur effectue la maintenance puis redémarre le \"\n\"système.\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\"Pour plus d'informations, voir les pages de manuel de B<shutdown>(8) et \"\n\"B<inittab>(5).\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\"Les niveaux d'exécution B<7> à B<9> sont également valables, mais pas \"\n\"vraiment documentés. La raison pour cela est que les UNIX « traditionnels » \"\n\"ne les utilisent pas.\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\"Les niveaux d'exécution B<S> et B<s> sont équivalents. Ils sont considérés \"\n\"en interne comme des alias vers les mêmes niveaux.\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"DÉMARRAGE\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\"Après qu'B<init> ait été appelé comme dernière étape de la séquence de \"\n\"démarrage du noyau, il regarde dans le fichier I</etc/inittab> pour voir \"\n\"s'il y a une entrée du type B<initdefault> (consultez B<inittab>(5)). \"\n\"L'entrée B<initdefault> détermine le niveau d'exécution initial du système. \"\n\"S'il n'y a pas de telle entrée (ou pas de I</etc/inittab> du tout), un \"\n\"niveau d'exécution doit être entré sur la console système.\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\"Les niveaux d'exécution B<S> ou B<s> initialisent le système et ne \"\n\"nécessitent pas de fichier I</etc/inittab>.\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\"En mode mono-utilisateur, B</sbin/sulogin> est invoqué sur I</dev/console>.\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\"Quand il entre en mode mono-utilisateur, B<init> initialise les paramètres \"\n\"des consoles B<stty> à des valeurs saines. Le mode CLOCAL est configuré. La \"\n\"vitesse matérielle et le mode d'établissement d'une liaison ne sont pas \"\n\"changés.\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\"Quand il entre en mode multiutilisateur pour la première fois, B<init> \"\n\"exécute les entrées B<boot> et B<bootwait> pour permettre aux systèmes de \"\n\"fichiers de se monter avant que les utilisateurs puissent se connecter. \"\n\"Ensuite, toutes les entrées correspondant au niveau d'exécution sont \"\n\"exécutées.\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\"Lorsqu'il démarre un nouveau processus, B<init> vérifie d'abord si le \"\n\"fichier I</etc/initscript> existe. S'il existe, il utilise ce fichier pour \"\n\"démarrer le processus.\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\"Chaque fois qu'un processus enfant se termine, B<init> enregistre cela et la \"\n\"raison pour laquelle il est mort dans I</var/run/utmp> et I</var/log/wtmp>, \"\n\"si ces fichiers existent.\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"CHANGEMENT DE NIVEAU D'EXÉCUTION\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\"Après qu'il ait engendré tous les processus indiqués, B<init> attend qu'un \"\n\"de ses processus enfant meure, qu'un signal indiquant une perte de puissance \"\n\"arrive ou qu'un signal de B<telinit> lui indique qu'il faut changer le \"\n\"niveau d'exécution du système. Quand une de ces trois conditions se produit, \"\n\"il réexamine le fichier I</etc/inittab>. De nouvelles entrées peuvent être \"\n\"ajoutées à ce fichier à n'importe quel moment. Cependant, B<init> attend \"\n\"qu'une de ces conditions se produise. Pour que le fichier soit pris en \"\n\"compte immédiatement, la commande B<telinit Q> ou B<q> permet de réveiller \"\n\"B<init> pour qu'il réexamine (recharge) le fichier I</etc/inittab>.\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\"Si B<init> n'est pas en mode mono-utilisateur et reçoit un signal indiquant \"\n\"une perte de puissance (SIGPWR), il lit le fichier I</etc/powerstatus>. Il \"\n\"démarre ensuite une commande en fonction du contenu de ce fichier :\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"F(AIL) (échec)\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\"Plus d'alimentation, l'UPS fournit la puissance. Exécuter les entrées \"\n\"B<powerwait> et B<powerfail>.\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"O(K)\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"L'alimentation a été rétablie, exécuter les entrées B<powerokwait>.\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"L(OW) (bas)\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\"Plus d'alimentation et le niveau de la batterie de l'UPS est faible. \"\n\"Exécuter les entrées B<powerfailnow>.\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\"Si le fichier I</etc/powerstatus> n'existe pas ou contient autre chose que \"\n\"les lettres B<F>, B<O> ou B<L>, B<init> se comportera comme si la lettre \"\n\"B<F> y avait été lue.\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\"L'utilisation de B<SIGPWR> et de I</etc/powerstatus> n'est pas conseillée. \"\n\"Pour interagir avec B<init> il vaut mieux utiliser le canal de contrôle I</\"\n\"run/initctl> ; consultez la page de manuel de B<initctl>(5) pour plus de \"\n\"documentation à ce sujet.\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\"Quand on demande à B<init> de changer de niveau d'exécution, il envoie le \"\n\"signal d'avertissement B<SIGTERM> à tous les processus qui ne sont pas \"\n\"définis dans le nouveau niveau d'exécution. Il attend ensuite 3 secondes \"\n\"avant de forcer l'arrêt de ces processus avec le signal B<SIGKILL>. Notez \"\n\"que B<init> suppose que tous ces processus (et leurs enfants) restent dans \"\n\"le même groupe de processus que B<init> a créé pour eux. Si un processus \"\n\"change son affiliation à un groupe de processus, il ne recevra pas ces \"\n\"signaux. Ces processus doivent être arrêtés séparément.\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\"B</sbin/telinit> est un lien vers B</sbin/init>. Il prend un paramètre d'un \"\n\"caractère et signale à B<init> d'effectuer l'action appropriée. Les \"\n\"paramètres suivants servent de directive à B<telinit> :\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> ou B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"Demander à B<init> de passer au niveau d'exécution spécifié.\"\n\n#. type: IP\n#: ../init.8:172\n#, fuzzy, no-wrap\n#| msgid \"B<a>,B<b>,B<c>\"\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"B<a>,B<b>,B<c>\"\n\n#. type: Plain text\n#: ../init.8:175\n#, fuzzy\n#| msgid \"\"\n#| \"tell B<init> to process only those B</etc/inittab> file entries having \"\n#| \"runlevel B<a>,B<b> or B<c>.\"\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\"Demander à B<init> de ne traiter que les entrées du fichier I</etc/inittab> \"\n\"ayant le niveau d'exécution B<a>, B<b> ou B<c>.\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> ou B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"Demander à B<init> de réexaminer le fichier I</etc/inittab>.\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> ou B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"Demander à B<init> de passer en mode mono-utilisateur\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> ou B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\"Demander à B<init> de se relancer lui-même (en préservant son état). Le \"\n\"fichier I</etc/inittab> n'est pas réexaminé. Le niveau d'exécution doit être \"\n\"un des niveaux B<Ss0123456>, sinon la requête est ignorée silencieusement.\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\"B<telinit> peut indiquer à B<init> combien de temps il devrait attendre \"\n\"entre l'envoi des signaux B<SIGTERM> et B<SIGKILL> aux processus. La valeur \"\n\"par défaut est de 3 secondes, mais elle peut être changée avec l'option B<-\"\n\"t>.\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\"B<telinit -e> indique à B<init> de changer l'environnement des processus \"\n\"qu'il lance. Le paramètre de B<-e> est soit de la forme I<VAR>=I<VAL>, qui \"\n\"positionne la variable I<VAR> à la valeur I<VAL>, ou de la forme I<VAR> \"\n\"(sans signe égal), qui retire la variable I<VAR>.\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\"B<telinit> ne peut être appelé que par les utilisateurs avec les droits \"\n\"appropriés.\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\"Le binaire B<init> vérifie s'il s'agit d'B<init> ou de B<telinit> en \"\n\"fonction de l'identifiant du processus ; le véritable B<init> a toujours un \"\n\"identifiant égal à B<1>. Grâce à cela, B<init> peut également être appelé au \"\n\"lieu de B<telinit>, comme raccourci.\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"ENVIRONNEMENT\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\"B<init> configure les variables d'environnement suivantes pour tous ses \"\n\"enfants :\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\"Comme le nom l'indique. Utile pour déterminer si un script est exécuté \"\n\"directement par B<init>.\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"Le niveau d'exécution actuel du système.\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"\"\n\"Le niveau d'exécution précédent (utile après un changement de niveau \"\n\"d'exécution).\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\"La console système. Cela provient directement du noyau ; cependant si elle \"\n\"n'existe pas, B<init> la positionne à I</dev/console> par défaut.\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"ATTRIBUTS D'AMORÇAGE\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\"Un certain nombre d'options peuvent être fournies à B<init> à partir du \"\n\"gestionnaire de démarrage (par exemple LILO ou GRUB). B<init> accepte les \"\n\"options suivantes :\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s>, B<S>, B<single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\"Démarrage en mode mono-utilisateur. Dans ce mode, I</etc/inittab> est \"\n\"examiné et les scripts rc de démarrage sont généralement lancés avant que \"\n\"l'interpréteur de commande du mono-utilisateur ne commence.\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1>–B<5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"Niveau d'exécution dans lequel il faut démarrer.\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b>, B<emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\"Démarrage direct d'un interpréteur de commande en mode mono-utilisateur sans \"\n\"lancer aucun autre script de démarrage.\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a>, B<auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\"Le gestionnaire de démarrage LILO ajoute le mot « auto » sur la ligne de \"\n\"commande pour les démarrages utilisant la ligne de commande par défaut (sans \"\n\"intervention d'un utilisateur). Dans ce cas, B<init> positionne la variable \"\n\"d'environnement B<AUTOBOOT> à la valeur « yes ». Notez que vous ne pouvez \"\n\"pas utiliser cela à des fins sécuritaires ; un utilisateur pouvant bien sûr \"\n\"indiquer « auto » ou ajouter l'option B<-a> lui-même sur la ligne de \"\n\"commande.\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z> I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\"Le paramètre de B<-z> est ignoré. Vous pouvez utiliser cela pour étendre \"\n\"légèrement la ligne de commande pour qu'elle prenne plus de place sur la \"\n\"pile. B<init> peut ensuite manipuler la ligne de commande de telle sorte que \"\n\"B<ps>(1) affiche le niveau d'exécution actuel.\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\"Cet argument, utilisé seul, affiche la version actuelle d’B<init> sur la \"\n\"console/stdout. C’est un moyen rapide pour déterminer quel logiciel \"\n\"d’initialisation est en cours d’utilisation. Après l’affichage de la \"\n\"version, B<init> se termine immédiatement avec zéro comme code de retour.\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"INTERFACE\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\"B<init> écoute sur une I<fifo> dans I</dev>, I</run/initctl>, dans l'attente \"\n\"de messages. B<telinit> utilise cela pour communiquer avec B<init>. \"\n\"L'interface n'est pas très documentée ou finalisée. Les personnes \"\n\"intéressées devraient étudier le fichier I<initreq.h> dans le sous-\"\n\"répertoire I<src/> de l'archive tar des sources d'B<init>.\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"SIGNAUX\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"B<init> réagit à plusieurs signaux :\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"Identique à B<telinit q>.\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\"Lors de la réception de ces signaux, B<init> ferme et réouvre sa fifo de \"\n\"contrôle, I</run/initctl>. Cela est utile pour les scripts de démarrage \"\n\"quand I</dev> est remonté.\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\"Quand B<init> reçoit B<SIGUSR2>, il ferme et abandonne la fifo de contrôle, \"\n\"I</run/initctl>, fermée. Cela peut être utilisé pour être sûr que qu’B<init> \"\n\"ne maintient pas ouvert un quelconque fichier. Toutefois, il empêche aussi \"\n\"B<init> de changer les niveaux d’exécution, ce qui signifie que des \"\n\"commandes telles que B<shutdown> ne fonctionneront plus. La fifo peut être \"\n\"réouverte en envoyant à B<init> le signal B<SIGUSR1>.\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\"Normalement le noyau envoie ce signal à B<init> à travers la combinaison de \"\n\"touches Ctrl-Alt-Suppr. Cela active l'action I<ctrlaltdel>.\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\"Le noyau envoie ce signal quand la touche I<KeyboardSignal> est pressée. \"\n\"Cela active l'action I<kbrequest>.\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"CONFORMITÉ\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\"B<init> est compatible avec l'init de Système V. Il collabore étroitement \"\n\"avec les scripts des répertoires I</etc/init.d> et I</etc/\"\n\"rc{niveau_exécution}.d>. Si votre système utilise cette convention, il \"\n\"devrait y avoir un fichier I<README> dans le répertoire I</etc/init.d> qui \"\n\"explique comment ces scripts fonctionnent.\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"FICHIERS\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"AVERTISSEMENTS\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\"B<init> suppose que les processus et leurs descendants restent dans le même \"\n\"groupe de processus créé initialement pour eux. Si les processus changent \"\n\"leur groupe, B<init> ne peut pas les tuer et cela peut conduire à avoir deux \"\n\"processus qui lisent la même ligne de terminal.\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\"Sur un système Debian, entrer dans le niveau d'exécution B<1> force tous les \"\n\"processus à être tués à l'exception des threads du noyau et du script qui \"\n\"s'occupe de tuer les autres processus ainsi que les autres processus de sa \"\n\"session. En conséquence, il n'est pas sûr de passer du niveau \"\n\"d'exécution B<1> vers un niveau d'exécution multi-utilisateur : les démons \"\n\"qui étaient démarrés dans le niveau d'exécution B<S> et qui sont nécessaires \"\n\"au bon fonctionnement ne tournent plus. Le système devrait être redémarré.\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\"Si B<init> trouve qu'il n'arrête pas de relancer une entrée (plus de dix \"\n\"fois en deux minutes), il supposera qu'il y a une erreur dans la commande, \"\n\"générera une erreur sur la console système et refusera de relancer cette \"\n\"entrée à moins que cinq minutes se soient écoulées ou qu'il ait reçu un \"\n\"signal. Cela permet d'éviter de consommer des ressources système quand \"\n\"quelqu'un a fait une faute de frappe dans le fichier I</etc/inittab> ou que \"\n\"le programme de l'entrée a été supprimé.\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME> , page de \"\n\"manuel originelle de E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.\"\n\"de> Michael Haardt E<.ME .>\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"Formats de fichier\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\n#, fuzzy\n#| msgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"\"\n\"Le niveau d'exécution précédent (utile après un changement de niveau \"\n\"d'exécution).\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10 juillet 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"initscript - Script qui exécute les commandes incluses dans inittab\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"/bin/sh /etc/initscript id niveaux_exécution action processus\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\"Quand le script shell I</etc/initscript> est présent, B<init> l'utilisera \"\n\"afin d'exécuter les commandes provenant d'I<inittab>. Ce script peut être \"\n\"utilisé pour paramétrer des valeurs par défaut telles que I<ulimit> et \"\n\"I<umask>.\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\"Voici un exemple de script d'initialisation qui est peut-être installé sur \"\n\"votre système en tant que B</etc/initscript.sample>.\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\"#\\n\"\n\"# initscript exécuté par init(8) pour tout programme\\n\"\n\"#            voulant apparaître ainsi\\\\ :\\n\"\n\"#\\n\"\n\"#     /bin/sh /etc/initscript E<lt>idE<gt> E<lt>niveau d'exécutionE<gt> E<lt>actionE<gt> E<lt>processusE<gt>\\n\"\n\"#\\n\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\"  # Paramétrer umask pour le mode sans échec,\\n\"\n\"  # et activer les core-dumps (sauvegardes d'image mémoire).\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\"  # Augmenter la limite impérative des descripteurs de fichiers à 8192 pour tous les\\n\"\n\"  # processus. La limite souple est encore 1024, mais tous les\\n\"\n\"  # processus non privilégiés peuvent augmenter leur limite souple\\n\"\n\"  # jusqu'à la limite impérative\\n\"\n\"  # avec \\\"ulimit -Sn xxx\\\" (nécessite un noyau Linux 2.2.13 ou plus ).\\n\"\n\"  ulimit -Hn 8192\\n\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\"  # Exécuter le programme.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\n\n#. type: Plain text\n#: ../initscript.5:65\n#, fuzzy\n#| msgid \"\"\n#| \"This script is not meant as startup script for daemons or somesuch.  It \"\n#| \"has nothing to do with a I<rc.local> style script. It's just a handler \"\n#| \"for things executed from B</etc/inittab>. Experimenting with this can \"\n#| \"make your system un(re)bootable.\"\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\"Ce script ne prétend pas être un script de démarrage pour les démons ou \"\n\"autres. Il n'a rien à voir avec les scripts du style I<rc.local>. C'est \"\n\"juste un gestionnaire pour ce qui est exécuté venant de B</etc/inittab>. \"\n\"Faire des expériences avec initscript peut rendre impossible le redémarrage \"\n\"de votre système.\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript.\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4 décembre 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\"inittab - Format du fichier inittab utilisé dans le processus de démarrage \"\n\"des systèmes UNIX Système V et compatibles\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\"Le fichier B<inittab> décrit l'ensemble des processus qui doivent être \"\n\"lancés au démarrage du système et pendant un fonctionnement normal (par \"\n\"exemple, /etc/init.d/boot, /etc/init.d/rc, gettys…). Le programme B<init>(8) \"\n\"distingue différents I<niveaux_exécution> (runlevel), chacun pouvant avoir \"\n\"ses propres processus à démarrer. Les niveaux d'exécution valables sont B<0>-\"\n\"B<6>, et B<A>, B<B> ou B<C> pour des niveaux personnalisés (B<ondemand>). \"\n\"Typiquement, une entrée dans le fichier inittab a la forme suivante :\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"I<id>:I<niveaux_exécution>:I<action>:I<processus>\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"Les lignes commençant par le caractère « # » sont ignorées.\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<id>\"\n\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\"Séquence unique de 1 à 4 caractères qui identifient une entrée dans \"\n\"B<inittab> (pour les versions de sysvinit compilées avec les I<anciennes> \"\n\"bibliothèques libc5 (E<lt> 5.2.18) ou a.out, la limite est de 2 caractères).\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\"Remarque : pour les programmes de connexion comme les getty ou d'autres, le \"\n\"champ I<id> doit être le numéro du tty correspondant à la console, par \"\n\"exemple B<1> pour B<tty1>. Des anciens programmes de gestion des connexions \"\n\"peuvent également se baser là-dessus, même si je n'en ai pas le souvenir. \"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"I<niveaux_exécution>\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"Liste des niveaux d'exécution pour lesquels l'action doit être faite.\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"I<action>\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"Description de l'action à faire.\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"I<processus>\"\n\n#. type: Plain text\n#: ../inittab.5:70\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\"Commande à exécuter. Si ce champ commence par le caractère « + », B<init> \"\n\"n'enregistrera pas les connexions dans utmp et wtmp. C'est requis par getty \"\n\"qui utilise son propre gestionnaire de utmp ou de wtmp. C'est également un \"\n\"bogue qui reste pour des raisons historiques. La taille de ce champ est \"\n\"limitée à 127 caractères.\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\"Le champ I<niveaux_exécution> peut contenir plusieurs caractères indiquant \"\n\"différents niveaux d'exécution. Par exemple, B<123> signifie que le \"\n\"processus sera exécuté dans les niveaux d'exécution 1, 2 et 3. Les I<niveaux \"\n\"d'exécution> pour les entrées B<ondemand> peuvent contenir un B<A>, B<B> ou \"\n\"B<C>. Les champs I<niveaux_exécution> des entrées B<sysinit>, B<boot> et \"\n\"B<bootwait> sont ignorés.\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\"Quand le niveau d'exécution est changé, tous les processus qui ne sont pas \"\n\"spécifiés démarrés dans ce nouveau niveau d'exécution sont tués, d'abord \"\n\"avec \\\\s-2SIGTERM\\\\s0, puis avec \\\\s-2SIGKILL\\\\s0.\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"Les actions valables pour le champ I<action> sont :\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"\"\n\"Le processus est redémarré à chaque fois qu'il se termine (par exemple : \"\n\"getty).\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\"Le processus n'est démarré qu'une seul fois, lors de l'entrée dans le niveau \"\n\"d'exécution et B<init> attend qu'il se termine.\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\"Le processus est exécuté une seule fois, lors de l'entrée dans le niveau \"\n\"d'exécution.\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\"Le processus est exécuté pendant le démarrage du système. Le champ \"\n\"I<niveaux_exécution> est ignoré.\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"Le processus est exécuté pendant le démarrage du système et B<init> attend \"\n\"que le processus se termine (par exemple : /etc/rc). Le champ \"\n\"I<niveaux_exécution> est ignoré.\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"Ne fait rien.\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\"Un processus marqué dans un niveau d'exécution B<ondemand> est exécuté à \"\n\"chaque fois que le niveau d'exécution B<ondemand> est appelé. Cependant, \"\n\"aucun changement de niveau d'exécution ne survient (les modes de démarrage \"\n\"pour B<ondemand> sont « a », « b » et « c »).\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\"Une entrée B<initdefault> indique qu'on entrera dans ce niveau d'exécution \"\n\"une fois le système effectivement opérationnel. Si aucun n'existe, B<init> \"\n\"demandera un niveau d'exécution sur la console. Le champ I<processus> est \"\n\"ignoré.\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"Le processus est exécuté pendant le démarrage du système. Il est exécuté \"\n\"avant les entrées B<boot> ou B<bootwait>. Le champ I<niveaux_exécution> est \"\n\"ignoré.\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\"Le processus est exécuté quand la machine est sur le point de s'éteindre. \"\n\"B<init> est normalement informé de cela par un programme qui discute avec un \"\n\"UPS connecté à la machine. B<init> attend que le processus se termine avant \"\n\"de continuer.\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\"Comme B<powerwait>, mis à part que B<init> n'attend pas la fin du processus \"\n\"avant de continuer.\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\"Le processus est exécuté dès que B<init> est informé que l'alimentation est \"\n\"remise en route.\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\"Ce processus est exécuté quand B<init> est informé que la batterie de \"\n\"l'onduleur externe est presque vide et que la tension faiblit (à condition \"\n\"que l'onduleur et le processus de surveillance soient capables de détecter \"\n\"cette condition).\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\"Le processus est exécuté lorsque B<init> reçoit le signal B<SIGINT>. Cela \"\n\"signifie que quelqu'un a tapé dans la console système la combinaison de \"\n\"touches B<CTRL-ALT-SUPPR>. Typiquement, on a voulu exécuter une sorte \"\n\"d'arrêt, soit pour démarrer en mode mono-utilisateur, soit pour redémarrer \"\n\"la machine.\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\"Le processus est exécuté quand B<init> reçoit un signal du gestionnaire de \"\n\"clavier indiquant qu'une combinaison spéciale de touches a été actionnée sur \"\n\"le clavier de la console.\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\"La documentation pour cette fonction n'est pas encore complète ; il est \"\n\"possible de trouver de la documentation supplémentaire dans le paquet kbd-x.\"\n\"xx paquets (le plus récent était kbd-0.94 au moment où ces lignes sont \"\n\"écrites). Vous pouvez affecter des combinaisons de touches à l'action \"\n\"« KeyboardSignal ». Par exemple, pour affecter Alt-FlècheHaut pour cet \"\n\"usage, utilisez ce qui suit dans votre fichier keymaps :\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"alt keycode 103 = KeyboardSignal\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\"Voici un exemple d'un fichier inittab qui ressemble à un ancien fichier \"\n\"inittab sous linux :\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\"# inittab for Linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\"Ce fichier inittab exécute I</etc/rc> pendant le démarrage du système et \"\n\"démarre getty sur les tty 1 à 4.\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\"Un fichier B<inittab> plus élaboré avec différents niveaux d'exécution \"\n\"(notez bien les commentaires) :\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\"# Runlevel à démarrer\\n\"\n\"id:2:initdefault:\\n\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\"# Script de configuration / initialisation du système au démarrage.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\"# Que faire dans le mode mono-utilisateur.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\"# /etc/init.d exécute les scripts S et K pour les changements\\n\"\n\"# de niveau d'exécution.\\n\"\n\"#\\n\"\n\"# Le niveau 0 est pour l'arrêt.\\n\"\n\"# Le niveau 1 est pour le mode mono-utilisateur.\\n\"\n\"# Les niveaux 2 à 5 correspondent aux niveaux multi-utilisateurs.\\n\"\n\"# Le niveau 6 correspond au redémarrage.\\n\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\"# Que faire du « salut à 3 doigts ».\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\"# niveau d'exécution 2,3 : getty sur les consoles virtuelles\\n\"\n\"# niveau d'exécution   3 : getty sur le terminal (ttyS0) et\\n\"\n\"#                          sur le port modem.\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\n#, fuzzy\n#| msgid \"\"\n#| \"B<Init> was written by Miquel van Smoorenburg (miquels@cistron.nl).  This \"\n#| \"manual page was written by Sebastian Lederer (lederer@francium.informatik.\"\n#| \"uni-bonn.de) and modified by Michael Haardt (u31b3hs@pool.informatik.rwth-\"\n#| \"aachen.de).\"\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"B<Init> a été écrit par Miquel van Smoorenburg (miquels@cistron.nl). Cette \"\n\"page de manuel a été écrite par Sebastian Lederer (lederer@francium.\"\n\"informatik.uni-bonn.de) et modifiée par Michael Haardt (u31b3hs@pool.\"\n\"informatik.rwth-aachen.de).\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4 novembre 2003\"\n\n# NOTE: Un seul tiret\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"killall5 - envoyer un signal à tous les processus\"\n\n#. type: Plain text\n#: ../killall5.8:28\n#, fuzzy\n#| msgid \"B<killall5> -signalnumber [B<-o> I<omitpid>] [B<-o> I<omitpid..>]\"\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"B<killall5> -B<signalnumber> [B<-o> I<sauf_pid>] [B<-o> I<sauf_pid..>]\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\"B<killall5> correspond à la commande B<killall> de Système V. Elle envoie un \"\n\"signal à tous les processus, sauf les threads du noyau et les processus de \"\n\"sa propre session. Il ne tuera donc pas l'interpréteur de commande qui l'a \"\n\"lancé. Son utilisation principale (unique) est dans les scripts B<rc> situés \"\n\"dans le répertoire I</etc/init.d>.\"\n\n#. type: IP\n#: ../killall5.8:35\n#, no-wrap\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-o> I<sauf_pid>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"Indiquer à B<killall5> d'ignorer le processus avec cet identifiant.\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\"B<killall5> peut aussi être appelé avec B<pidof>(8), qui n'est qu'un lien \"\n\"(symbolique) pour le programme B<killall5>.\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\"Le programme renvoie zéro s'il a tué les processus. Il renvoie B<2> si aucun \"\n\"processus n'a été tué et B<1> s'il n'a pas réussi à trouver de processus (I</\"\n\"proc/> est absent).\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, fuzzy, no-wrap\n#| msgid \"Jul 21, 2003\"\nmsgid \"Jul 31, 2004\"\nmsgstr \"21 juillet 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"last, lastb - afficher une liste des derniers utilisateurs connectés\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\n#, fuzzy\n#| msgid \"\"\n#| \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#| \"designated by the B<-f> option) and displays a list of all users logged \"\n#| \"in (and out) since that file was created.  One or more I<usernames> and/\"\n#| \"or I<ttys> can be given, in which case B<last> will show only the entries \"\n#| \"matching those arguments.  Names of I<ttys> can be abbreviated, thus \"\n#| \"B<last 0> is the same as B<last tty0>.\"\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\"B<last> parcourt le fichier I</var/log/wtmp> (ou le fichier indiqué par \"\n\"l'option B<-f>) pour présenter une liste de toutes les connexions et \"\n\"déconnexions des utilisateurs, depuis la création du fichier. Un ou \"\n\"plusieurs I<identifiant>s et terminaux (I<tty>) peuvent être indiqués, afin \"\n\"que B<last> ne montre que les connexions et déconnexions correspondant à ces \"\n\"arguments. Le nom des terminaux peut être abrégé, ainsi I<last 0> est \"\n\"équivalent à I<last tty0>.\"\n\n#. type: Plain text\n#: ../last.1:61\n#, fuzzy\n#| msgid \"\"\n#| \"When catching a SIGINT signal (generated by the interrupt key, usually \"\n#| \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#| \"through the file; in the case of the SIGINT signal B<last> will then \"\n#| \"terminate.\"\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\"À la réception d’un signal B<SIGINT> (engendré par la touche d'interruption, \"\n\"généralement Contrôle-C) ou un signal B<SIGQUIT>, B<last> indiquera le point \"\n\"où il est arrivé dans le fichier, et dans le cas de B<SIGINT>, B<last> se \"\n\"terminera.\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\"Le pseudo-utilisateur B<reboot> est enregistré à chaque redémarrage du \"\n\"système, ainsi I<last reboot> affichera une liste de tous les redémarrages \"\n\"depuis la création du fichier de journalisation.\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\"B<lastb> se comporte comme B<last>, mais il utilise le fichier I</var/log/\"\n\"btmp> qui journalise toutes les tentatives infructueuses de connexion.\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<fichier>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<nombre>\"\n\n#. type: Plain text\n#: ../last.1:75\n#, fuzzy\n#| msgid \"Tell B<last> how many lines to show.\"\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"Indiquer à B<last> le nombre de lignes d'enregistrement à afficher.\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<-n> I<nombre>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\n#, fuzzy\n#| msgid \"\"\n#| \"Display the state of logins since the specified I<time>.  This is useful, \"\n#| \"e.g., to easily determine who was logged in at a particular time.  The \"\n#| \"option is often combined with B<--until>.\"\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\"Afficher l'état des connexions depuis la I<date> donnée. C'est utile, par \"\n\"exemple, pour déterminer facilement qui était connecté à cet instant. \"\n\"L’option est souvent combinée avec B<--until>.\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"Ne pas afficher le champ B<hostname>.\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\n#, fuzzy\n#| msgid \"\"\n#| \"Display the hostname in the last column.  Useful in combination with the \"\n#| \"B<--dns> option.\"\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\"Afficher le nom d'hôte en dernière colonne. Principalement utile en \"\n\"combinaison avec l'option B<--dns>.\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\"Pour les connexions non locales, Linux enregistre le nom d'hôte de l’hôte \"\n\"distant, ainsi que son adresse IP. Avec cette option, l'adresse IP est à \"\n\"nouveau reconvertie en nom d'hôte.\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"\"\n\"Afficher l'ensemble des dates et heures de connexion et de déconnexion.\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"Afficher les noms d'utilisateur et de domaine complets sur la sortie.\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\"Afficher les arrêts du système et les modifications de niveau d'exécution \"\n\"(run level).\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\"Les fichiers I<wtmp> et I<btmp> sont parfois absents. Le système ne \"\n\"journalise les informations que si les fichiers sont déjà présents, mais ne \"\n\"les crée pas de lui-même. Il s'agit d'un choix local de configuration. Si \"\n\"vous désirez utiliser ces journalisations, vous pouvez créer les fichiers \"\n\"avec une simple commande B<touch>(1) (par exemple, B<touch /var/log/wtmp>).\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"I</var/log/wtmp>\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"I</var/log/btmp>\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, fuzzy, no-wrap\n#| msgid \"Dec 4, 2001\"\nmsgid \"Feb 26, 2001\"\nmsgstr \"4 décembre 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Commandes de l'utilisateur\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\n#, fuzzy\n#| msgid \"\"\n#| \"If no arguments are given, B<mesg> shows the current message status on \"\n#| \"standard error output.\"\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Si aucun argument n’est donné, B<mesg> affiche l’autorisation actuelle de \"\n\"message sur la sortie d’erreur standard.\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"MOUNTPOINT\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, fuzzy, no-wrap\n#| msgid \"May 2006\"\nmsgid \"Mar 15, 2004\"\nmsgstr \"mai 2006\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\n#, fuzzy\n#| msgid \"mountpoint - see if a directory or file is a mountpoint\"\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\"mountpoint - Vérifier si un répertoire ou un fichier est un point de montage\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\n#, fuzzy\n#| msgid \"B<mountpoint> [B<-d>|B<-q>] I<directory> | I<file>\"\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"B<mountpoint> [B<-d>|B<-q>] I<répertoire> | I<fichier>\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"B<mountpoint> B<-x> I</dev/périphérique>\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\n#, fuzzy\n#| msgid \"mountpoint - see if a directory or file is a mountpoint\"\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\"mountpoint - Vérifier si un répertoire ou un fichier est un point de montage\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"Mode silencieux – ne rien afficher.\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\n#, fuzzy\n#| msgid \"\"\n#| \"Show the major/minor numbers of the given blockdevice on standard output.\"\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\"Afficher les numéros majeur et mineur du périphérique bloc donné sur la \"\n\"sortie standard.\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\n#, fuzzy\n#| msgid \"\"\n#| \"Show the major/minor numbers of the given blockdevice on standard output.\"\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\"Afficher les numéros majeur et mineur du périphérique bloc donné sur la \"\n\"sortie standard.\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\n#, fuzzy\n#| msgid \"Zero if the directory or file is a mountpoint, non-zero if not.\"\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\"Zéro si le répertoire ou le fichier est un point de montage, non nul \"\n\"autrement.\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1er septembre 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"pidof – afficher l’identifiant de processus d'un programme en cours\"\n\n#. type: Plain text\n#: ../pidof.8:36\n#, fuzzy\n#| msgid \"\"\n#| \"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n#| \"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] \"\n#| \"B<program> [B<program...>]\"\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<sans_pid[,\"\n\"sans_pid...]>] [B<-o> I<sans_pid[,sans_pid...]...>] [B<-d> I<sep>] \"\n\"I<programme> [I<programme...>]\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\"B<pidof> cherche les identifiants de processus (PID : « Process ID ») \"\n\"portant l'un des noms de programme indiqués. Il affiche ces identifiants sur \"\n\"sa sortie standard. Ce programme est utilisé sur certains systèmes dans les \"\n\"scripts de changement de niveau d'exécution, en particulier pour les \"\n\"systèmes utilisant la structure I<rc> de I<Système V>. Dans ce cas, ces \"\n\"scripts sont situés dans I</etc/rc?.d> où « ? » est le niveau d'exécution. \"\n\"Si le système possède le programme B<start-stop-daemon>(8), celui-ci devrait \"\n\"être utilisé à la place.\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"Un seul essai –\\\\ I<pidof> ne renverra qu'un seul I<pid>.\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\"Ne renvoyer que les identifiants des processus qui sont exécutés dans le \"\n\"même répertoire racine. Cette option est ignorée pour les utilisateurs \"\n\"autres que le superutilisateur puisqu'ils ne peuvent pas vérifier le \"\n\"répertoire racine en cours des processus dont ils ne sont pas propriétaires.\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\"Éviter l'appel à la fonction système B<stat>(2) pour tous les binaires \"\n\"situés sur des systèmes de fichiers en réseau comme B<NFS>. Au lieu \"\n\"d'utiliser cette option, il est possible de configurer et d'exporter la \"\n\"variable B<PIDOF_NETFS>.\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\"Ne pas afficher les PID qui correspondent sur la sortie standard. Simplement \"\n\"quitter avec l’état vrai ou faux pour indiquer si un PID correspondant a été \"\n\"trouvé.\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\"Scripts également –\\\\ B<pidof> renverra également les PID des interpréteurs \"\n\"de commandes exécutant les scripts indiqués.\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"B<-d> I<sep>\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\"Demander à B<pidof> d’utiliser I<sep> comme séparateur de sortie si plus \"\n\"d’un PID est affiché. Le séparateur par défaut est une espace.\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"B<-o> I<sauf_pid>\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\"Demander à B<pidof> de ne pas tenir compte du processus du PID indiqué. Le \"\n\"PID spécial B<%PPID> peut décrire le processus parent du programme B<pidof>, \"\n\"c'est-à-dire l’interpréteur de commandes ou le script d’interpréteur \"\n\"appelant.\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"Au moins un programme a été trouvé avec le nom demandé.\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"Aucun programme n’a été trouvé avec le nom demandé.\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\"B<pidof> utilise en fait le même programme que B<killall5>(8)\\\\ ; la \"\n\"différence de comportement se fait en fonction du nom du programme appelé.\"\n\n# NOTE: typo: that that\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\"Quand B<pidof> est exécuté avec le chemin complet du programme dont il doit \"\n\"chercher le PID, son comportement est fiable. Dans le cas contraire, les PID \"\n\"renvoyés peuvent être ceux de processus portant le même nom mais qui sont en \"\n\"fait des programmes différents. Notez que le nom de l'exécutable des \"\n\"processus en cours d'exécution est obtenu à l'aide de B<readlink>(2), et \"\n\"donc les liens symboliques vers les exécutables correspondront également.\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\"Les processus zombies ou les processus de disque en veille (états Z et D \"\n\"respectivement) sont ignorés car les essais d’accès à leurs états échouera \"\n\"parfois. L’argument B<-z> (voir ci-dessus) demande à B<pidof> d’essayer de \"\n\"détecter ces processus zombies ou en veille avec le risque d’échouer ou de \"\n\"planter.\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<fichier\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:21\n#, fuzzy\n#| msgid \"runlevel - Print previous and current SysV runlevel\"\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"runlevel – Trouver les niveaux d'exécution SysV précédent et actuel\"\n\n#. type: Plain text\n#: ../runlevel.8:24\n#, fuzzy\n#| msgid \"B<runlevel> [options...]\"\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"B<runlevel> [I<options>...]\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\n#, fuzzy\n#| msgid \"Reboot the machine\\\\&.\"\nmsgid \"Reboot after shutdown.\"\nmsgstr \"Redémarrer la machine\\\\&.\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, fuzzy, no-wrap\n#| msgid \"-d I<sep>\"\nmsgid \"B<-t> I<sec>\"\nmsgstr \"B<-d> I<sep>\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\n#, fuzzy\n#| msgid \"shutdown\"\nmsgid \"When to shutdown.\"\nmsgstr \"shutdown\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\n#, fuzzy\n#| msgid \"Messages are not allowed.\"\nmsgid \"Message to send to all users.\"\nmsgstr \"Les messages ne sont pas permis.\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, fuzzy, no-wrap\n#| msgid \"May 2006\"\nmsgid \"17 Jan 2006\"\nmsgstr \"mai 2006\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"sulogin - connexion en mode mono-utilisateur\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"L'utilisateur verra s'afficher :\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"Donnez le mot de passe du superutilisateur pour la maintenance\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"(ou appuyez sur Ctrl et D pour continuer) : \"\n\n#. type: Plain text\n#: ../sulogin.8:45\n#, fuzzy\n#| msgid \"\"\n#| \"B<sulogin> will be connected to the current terminal, or to the optional \"\n#| \"I<tty> device that can be specified on the command line (typically I</dev/\"\n#| \"console>).\"\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\"B<sulogin> sera connecté au terminal en cours ou au périphérique facultatif \"\n\"I<tty> fourni sur la ligne de commande (habituellement B</dev/console>).\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\n#, fuzzy\n#| msgid \"\"\n#| \"When the user exits from the single-user shell, or presses control-D at \"\n#| \"the prompt, the system will continue to boot.\"\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\"Quand l’utilisateur quitte l’interpréteur de commandes mono-utilisateur ou \"\n\"appuie sur Ctrl et D à l'invite de commande, le système continuera à \"\n\"démarrer.\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, fuzzy, no-wrap\n#| msgid \"ENVIRONMENT\"\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"ENVIRONNEMENT\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\"B<sulogin> recherche les variables d’environnement B<SUSHELL> ou B<sushell> \"\n\"pour déterminer l’interpréteur de commandes à démarrer. Si la variable \"\n\"d’environnement n’est pas définie, il essaiera d’exécuter l’interpréteur de \"\n\"commandes du superutilisateur indiqué dans le fichier I</etc/passwd>. Si \"\n\"cela échoue également, il essaiera I</bin/sh>.\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\n#, fuzzy\n#| msgid \"\"\n#| \"Only use the B<-e> option if you are sure the console is physically \"\n#| \"protected against unauthorized access.\"\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\"N'utilisez l'option B<-e> que si vous êtes sûr que la console est \"\n\"physiquement protégée contre les accès non autorisés.\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"utmpdump - Vider des fichiers utmp et wtmp au format brut\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\n#, fuzzy\n#| msgid \"B<utmpdump> [options] [I<filename>]\"\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"B<utmpdump> [B<options>] [I<fichier>]\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\"B<utmpdump> est un programme simple pour vider des fichiers utmp et wtmp au \"\n\"format brut, afin de pouvoir les examiner.\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"Afficher les données ajoutées lorsque le fichier grossit.\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\n#, fuzzy\n#| msgid \"\"\n#| \"Undump, write back edited login information into the utmp or wtmp files.\"\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\"Restaurer, réécrire les informations de connexion éditées dans les fichiers \"\n\"utmp et wtmp.\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\n#, fuzzy\n#| msgid \"\"\n#| \"B<utmpdump> can be useful in cases of corrupted utmp or wtmp entries.  It \"\n#| \"can dump out utmp/wtmp to an ASCII file, which can then be edited to \"\n#| \"remove bogus entries, and reintegrated using:\"\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\"B<utmpdump> peut être utile en cas d’entrées utmp ou wtmp corrompues. Il \"\n\"peut vider utmp ou wtmp dans un fichier ASCII, qui peut ensuite être modifié \"\n\"pour supprimer les entrées boguées, puis réintégré en utilisant :\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"B<utmpdump -r E<lt>> I<fichier_ASCII> B<E<gt> wtmp>\\n\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\"Avertissement : B<utmpdump> n’a été écrit que pour des besoins de débogage.\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\"Vous ne devriez B<pas> utiliser l’option B<-r>, car le format des fichiers \"\n\"utmp ou wtmp dépend fortement du format d’entrée. Cet outil n’a B<pas> été \"\n\"écrit pour une utilisation normale, mais seulement pour le débogage.\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:22\n#, fuzzy\n#| msgid \"wall - write a message to all users\"\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - Envoyer un message à tous les utilisateurs\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, no-wrap\n#~ msgid \"B<a>,\"\n#~ msgstr \"B<a>,\"\n\n#~ msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#, no-wrap\n#~ msgid \"fstab-decode\"\n#~ msgstr \"fstab-decode\"\n\n#~ msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg, E<lt>miquels@cistron.nlE<gt>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"Linux System Administrator's Manual\"\n#~ msgid \"Linux User's Manual\"\n#~ msgstr \"Manuel de l’Administrateur de Système Linux\"\n\n#, fuzzy\n#~| msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgid \"Miquel van Smoorenburg (miquels@cistron.nl)\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#, no-wrap\n#~ msgid \"-s\"\n#~ msgstr \"B<-s>\"\n\n#, no-wrap\n#~ msgid \"-c\"\n#~ msgstr \"B<-c>\"\n\n#, no-wrap\n#~ msgid \"-n\"\n#~ msgstr \"B<-n>\"\n\n#, no-wrap\n#~ msgid \"-q\"\n#~ msgstr \"B<-q>\"\n\n#, no-wrap\n#~ msgid \"-x\"\n#~ msgstr \"B<-x>\"\n\n#, no-wrap\n#~ msgid \"-z\"\n#~ msgstr \"B<-z>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> \"\n#~| \"to determine what shell to start.  If the environment variable is not \"\n#~| \"set, it will try to execute root's shell from I</etc/passwd>.  If that \"\n#~| \"fails, it will fall back to I</bin/sh>.\"\n#~ msgid \"\"\n#~ \"I<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n#~ \"determine what shell to start. If the environment variable is not set, it \"\n#~ \"will try to execute root's shell from /etc/passwd. If that fails it will \"\n#~ \"fall back to B</bin/sh>.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> recherche les variables d’environnement B<SUSHELL> ou \"\n#~ \"B<sushell> pour déterminer l’interpréteur de commandes à démarrer. Si la \"\n#~ \"variable d’environnement n’est pas définie, il essaiera d’exécuter \"\n#~ \"l’interpréteur de commandes du superutilisateur indiqué dans le fichier \"\n#~ \"I</etc/passwd>. Si cela échoue également, il essaiera I</bin/sh>.\"\n\n#, fuzzy\n#~| msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgid \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg, E<lt>miquels@cistron.nlE<gt>\"\n\n#~ msgid \"\"\n#~ \"Try to detect processes which are stuck in uninterruptible (D) or zombie \"\n#~ \"(Z)  status. Usually these processes are skipped as trying to deal with \"\n#~ \"them can cause pidof to hang.\"\n#~ msgstr \"\"\n#~ \"Essayer de détecter les processus qui sont bloqués dans un état \"\n#~ \"ininterruptible (D) ou zombie (Z). Habituellement ces processus sont omis \"\n#~ \"car essayer de les traiter peut provoquer le plantage de B<pidof>.\"\n\n#~ msgid \"\"\n#~ \"In essence fstab-decode can be used anytime we want to pass multiple \"\n#~ \"parameters to a command as a list of command line arguments.  It turns \"\n#~ \"output like this:\"\n#~ msgstr \"\"\n#~ \"En substance, fstab-decode peut être utilisé chaque fois que l'on veut \"\n#~ \"passer de multiples paramètres à une commande comme une liste de \"\n#~ \"paramètres en ligne de commande. Cela donne quelque chose comme ceci :\"\n\n#~ msgid \"\"\n#~ \"This script is not meant as startup script for daemons or somesuch.  It \"\n#~ \"has nothing to do with a I<rc.local> style script. It's just a handler \"\n#~ \"for things executed from B</etc/inittab>. Experimenting with this can \"\n#~ \"make your system un(re)bootable.\"\n#~ msgstr \"\"\n#~ \"Ce script ne prétend pas être un script de démarrage pour les démons ou \"\n#~ \"autres. Il n'a rien à voir avec les scripts du style I<rc.local>. C'est \"\n#~ \"juste un gestionnaire pour ce qui est exécuté venant de B</etc/inittab>. \"\n#~ \"Faire des expériences avec initscript peut rendre impossible le \"\n#~ \"redémarrage de votre système.\"\n\n#, no-wrap\n#~ msgid \"2021-06-02\"\n#~ msgstr \"2 juin 2021\"\n\n#, no-wrap\n#~ msgid \"util-linux 2.37.2\"\n#~ msgstr \"util-linux 2.37.2\"\n\n#~ msgid \"B<last> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<last> [I<options>] [I<identifiant> ...] [I<tty> ...]\"\n\n#~ msgid \"B<lastb> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<lastb> [I<options>] [I<identifiant> ...] [I<tty> ...]\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#~| \"designated by the B<-f> option) and displays a list of all users logged \"\n#~| \"in (and out) since that file was created.  One or more I<usernames> and/\"\n#~| \"or I<ttys> can be given, in which case B<last> will show only the \"\n#~| \"entries matching those arguments.  Names of I<ttys> can be abbreviated, \"\n#~| \"thus B<last 0> is the same as B<last tty0>.\"\n#~ msgid \"\"\n#~ \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#~ \"designated by the B<-f> option) and displays a list of all users logged \"\n#~ \"in (and out) since that file was created. One or more I<usernames> and/or \"\n#~ \"I<ttys> can be given, in which case B<last> will show only the entries \"\n#~ \"matching those arguments. Names of I<ttys> can be abbreviated, thus \"\n#~ \"B<last 0> is the same as B<last tty0>.\"\n#~ msgstr \"\"\n#~ \"B<last> parcourt le fichier I</var/log/wtmp> (ou le fichier indiqué par \"\n#~ \"l'option B<-f>) pour présenter une liste de toutes les connexions et \"\n#~ \"déconnexions des utilisateurs, depuis la création du fichier. Un ou \"\n#~ \"plusieurs I<identifiant>s et terminaux (I<tty>) peuvent être indiqués, \"\n#~ \"afin que B<last> ne montre que les connexions et déconnexions \"\n#~ \"correspondant à ces arguments. Le nom des terminaux peut être abrégé, \"\n#~ \"ainsi I<last 0> est équivalent à I<last tty0>.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"When catching a SIGINT signal (generated by the interrupt key, usually \"\n#~| \"control-C) or a SIGQUIT signal, B<last> will show how far it has \"\n#~| \"searched through the file; in the case of the SIGINT signal B<last> will \"\n#~| \"then terminate.\"\n#~ msgid \"\"\n#~ \"When catching a B<SIGINT> signal (generated by the interrupt key, usually \"\n#~ \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#~ \"through the file; in the case of the B<SIGINT> signal B<last> will then \"\n#~ \"terminate.\"\n#~ msgstr \"\"\n#~ \"À la réception d’un signal B<SIGINT> (engendré par la touche \"\n#~ \"d'interruption, généralement Contrôle-C) ou un signal B<SIGQUIT>, B<last> \"\n#~ \"indiquera le point où il est arrivé dans le fichier, et dans le cas de \"\n#~ \"B<SIGINT>, B<last> se terminera.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The pseudo user B<reboot> logs in each time the system is rebooted.  \"\n#~| \"Thus B<last reboot> will show a log of all the reboots since the log \"\n#~| \"file was created.\"\n#~ msgid \"\"\n#~ \"The pseudo user B<reboot> logs in each time the system is rebooted. Thus \"\n#~ \"B<last reboot> will show a log of all the reboots since the log file was \"\n#~ \"created.\"\n#~ msgstr \"\"\n#~ \"Le pseudo-utilisateur B<reboot> est enregistré à chaque redémarrage du \"\n#~ \"système, ainsi I<last reboot> affichera une liste de tous les \"\n#~ \"redémarrages depuis la création du fichier de journalisation.\"\n\n#, fuzzy\n#~| msgid \"B<-a>,B< --hostlast>\"\n#~ msgid \"B<-a>, B<--hostlast>\"\n#~ msgstr \"B<-a>, B<--hostlast>\"\n\n#, fuzzy\n#~| msgid \"B<-d>,B< --dns>\"\n#~ msgid \"B<-d>, B<--dns>\"\n#~ msgstr \"B<-d>, B<--dns>\"\n\n#, fuzzy\n#~| msgid \"B<-f>,B< --file >I<file>\"\n#~ msgid \"B<-f>, B<--file> I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<fichier>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>.  The \"\n#~| \"B<--file> option can be given multiple times, and all of the specified \"\n#~| \"files will be processed.\"\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>. The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"Indiquer à B<last> d’utiliser le I<fichier> indiqué au lieu de I</var/log/\"\n#~ \"wtmp>. L’option B<--file> peut être indiquée plusieurs fois, et tous les \"\n#~ \"fichiers concernés seront traités.\"\n\n#, fuzzy\n#~| msgid \"B<-F>,B< --fulltimes>\"\n#~ msgid \"B<-F>, B<--fulltimes>\"\n#~ msgstr \"B<-F>, B<--fulltimes>\"\n\n#, fuzzy\n#~| msgid \"B<-i>,B< --ip>\"\n#~ msgid \"B<-i>, B<--ip>\"\n#~ msgstr \"B<-i>, B<--ip>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Like B<--dns ,> but displays the host's IP number instead of the name.\"\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host\\\\(cqs IP number instead of the name.\"\n#~ msgstr \"\"\n#~ \"Comme B<--dns>, mais afficher l’adresse IP de l’hôte au lieu du nom.\"\n\n#, fuzzy\n#~| msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgid \"B<->I<number>; B<-n>, B<--limit> I<number>\"\n#~ msgstr \"B<-n>, B<--limit> I<nombre>\"\n\n#, fuzzy\n#~| msgid \"B<-p>,B< --present >I<time>\"\n#~ msgid \"B<-p>, B<--present> I<time>\"\n#~ msgstr \"B<-p>, B<--present> I<date>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Display the users who were present at the specified time.  This is like \"\n#~| \"using the options B<--since> and B<--until> together with the same \"\n#~| \"I<time>.\"\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time. This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"Afficher les utilisateurs présents à la I<date> indiquée. C’est \"\n#~ \"équivalent à l’utilisation des options B<--since> et B<--until> ensemble \"\n#~ \"avec la même I<date>.\"\n\n#, fuzzy\n#~| msgid \"B<-R>,B< --nohostname>\"\n#~ msgid \"B<-R>, B<--nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#, fuzzy\n#~| msgid \"B<-s>,B< --since >I<time>\"\n#~ msgid \"B<-s>, B<--since> I<time>\"\n#~ msgstr \"B<-s>, B<--since> I<date>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Display the state of logins since the specified I<time>.  This is \"\n#~| \"useful, e.g., to easily determine who was logged in at a particular \"\n#~| \"time.  The option is often combined with B<--until>.\"\n#~ msgid \"\"\n#~ \"Display the state of logins since the specified I<time>. This is useful, \"\n#~ \"e.g., to easily determine who was logged in at a particular time. The \"\n#~ \"option is often combined with B<--until>.\"\n#~ msgstr \"\"\n#~ \"Afficher l'état des connexions depuis la I<date> donnée. C'est utile, par \"\n#~ \"exemple, pour déterminer facilement qui était connecté à cet instant. \"\n#~ \"L’option est souvent combinée avec B<--until>.\"\n\n#, fuzzy\n#~| msgid \"B<-t>,B< --until >I<time>\"\n#~ msgid \"B<-t>, B<--until> I<time>\"\n#~ msgstr \"B<-t>, B<--until> I<date>\"\n\n#~ msgid \"Display the state of logins until the specified I<time>.\"\n#~ msgstr \"Afficher l’état des connexions jusqu’à la I<date> indiquée.\"\n\n#, fuzzy\n#~| msgid \"B<--time-format>I< format>\"\n#~ msgid \"B<--time-format> I<format>\"\n#~ msgstr \"B<--time-format> I<format>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~| \"I<full>, or I<iso>.  The I<notime> variant will not print any timestamps \"\n#~| \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~| \"fulltimes> option.  The I<iso> variant will display the timestamp in \"\n#~| \"ISO-8601 format.  The ISO format contains timezone information, making \"\n#~| \"it preferable when printouts are investigated outside of the system.\"\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>. The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option. The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format. The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"Définir le I<format> d’affichage de l’horodatage à celui de B<notime>, \"\n#~ \"B<short>, B<full> ou B<iso>. La variante B<notime> n’affichera pas \"\n#~ \"d’horodatage du tout, B<short> est la valeur par défaut et B<full> est \"\n#~ \"identique à l’option B<--fulltimes>. La variante B<iso> affichera \"\n#~ \"l’horodatage au format ISO 8601. Le format ISO contient l’indication de \"\n#~ \"fuseau horaire, ce qui est préférable lorsque la sortie est étudiée hors \"\n#~ \"du système.\"\n\n#, fuzzy\n#~| msgid \"B<-w>,B< --fullnames>\"\n#~ msgid \"B<-w>, B<--fullnames>\"\n#~ msgstr \"B<-w>, B<--fullnames>\"\n\n#, fuzzy\n#~| msgid \"B<-x>,B< --system>\"\n#~ msgid \"B<-x>, B<--system>\"\n#~ msgstr \"B<-x>, B<--system>\"\n\n#, no-wrap\n#~ msgid \"TIME FORMATS\"\n#~ msgstr \"FORMATS DE DATE\"\n\n#~ msgid \"\"\n#~ \"The options that take the I<time> argument understand the following \"\n#~ \"formats:\"\n#~ msgstr \"\"\n#~ \"Les options acceptant l’argument I<date> permettent d’utiliser les \"\n#~ \"formats suivants :\"\n\n#, no-wrap\n#~ msgid \".sp\\n\"\n#~ msgstr \".sp\\n\"\n\n#, no-wrap\n#~ msgid \"YYYYMMDDhhmmss\"\n#~ msgstr \"AAAAMMJJhhmmss\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm:ss\"\n#~ msgstr \"AAAA-MM-JJ hh:mm:ss\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm\"\n#~ msgstr \"AAAA-MM-JJ hh:mm\"\n\n#, no-wrap\n#~ msgid \"(seconds will be set to 00)\"\n#~ msgstr \"(les secondes sont définies à 00)\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD\"\n#~ msgstr \"AAAA-MM-JJ\"\n\n#, no-wrap\n#~ msgid \"(time will be set to 00:00:00)\"\n#~ msgstr \"(l’heure est définie à 00:00:00)\"\n\n#, no-wrap\n#~ msgid \"hh:mm:ss\"\n#~ msgstr \"hh:mm:ss\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today)\"\n#~ msgstr \"(la date est définie à aujourd’hui)\"\n\n#, no-wrap\n#~ msgid \"hh:mm\"\n#~ msgstr \"hh:mm\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today, seconds to 00)\"\n#~ msgstr \"\"\n#~ \"(la date est définie à aujourd’hui,\\n\"\n#~ \"\\t les secondes à 00)\"\n\n#, no-wrap\n#~ msgid \"now\"\n#~ msgstr \"now [maintenant]\"\n\n#, no-wrap\n#~ msgid \"yesterday\"\n#~ msgstr \"yesterday [hier]\"\n\n#, no-wrap\n#~ msgid \"(time is set to 00:00:00)\"\n#~ msgstr \"(l’heure est définie à 00:00:00)\"\n\n#, no-wrap\n#~ msgid \"today\"\n#~ msgstr \"today [aujourd’hui]\"\n\n#, no-wrap\n#~ msgid \"tomorrow\"\n#~ msgstr \"tomorrow [demain]\"\n\n#, no-wrap\n#~ msgid \"+5min\"\n#~ msgstr \"+5min\"\n\n#, no-wrap\n#~ msgid \"-5days\"\n#~ msgstr \"-5days [il y a cinq jours]\"\n\n#, fuzzy\n#~| msgid \"I</var/log/wtmp>\"\n#~ msgid \"I</var/log/wtmp>, I</var/log/btmp>\"\n#~ msgstr \"I</var/log/wtmp>\"\n\n#, no-wrap\n#~ msgid \"AUTHORS\"\n#~ msgstr \"AUTEURS\"\n\n#~ msgid \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n#~ msgstr \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"REPORTING BUGS\"\n#~ msgstr \"SIGNALER DES BOGUES\"\n\n#~ msgid \"For bug reports, use the issue tracker at\"\n#~ msgstr \"\"\n#~ \"Pour envoyer un rapport de bogue, utilisez le système de gestion des \"\n#~ \"problèmes à l'adresse\"\n\n#, no-wrap\n#~ msgid \"AVAILABILITY\"\n#~ msgstr \"DISPONIBILITÉ\"\n\n#, no-wrap\n#~ msgid \"October 2013\"\n#~ msgstr \"Octobre 2013\"\n\n#, no-wrap\n#~ msgid \"util-linux\"\n#~ msgstr \"util-linux\"\n\n#, no-wrap\n#~ msgid \"B<-a>,B< --hostlast>\"\n#~ msgstr \"B<-a>, B<--hostlast>\"\n\n#~ msgid \"\"\n#~ \"Display the hostname in the last column.  Useful in combination with the \"\n#~ \"B<--dns> option.\"\n#~ msgstr \"\"\n#~ \"Afficher le nom d'hôte en dernière colonne. Principalement utile en \"\n#~ \"combinaison avec l'option B<--dns>.\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --dns>\"\n#~ msgstr \"B<-d>, B<--dns>\"\n\n#~ msgid \"\"\n#~ \"For non-local logins, Linux stores not only the host name of the remote \"\n#~ \"host, but its IP number as well.  This option translates the IP number \"\n#~ \"back into a hostname.\"\n#~ msgstr \"\"\n#~ \"Pour les connexions non locales, Linux enregistre le nom d'hôte de l’hôte \"\n#~ \"distant, ainsi que son adresse IP. Avec cette option, l'adresse IP est à \"\n#~ \"nouveau reconvertie en nom d'hôte.\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --file >I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<fichier>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>.  The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"Indiquer à B<last> d’utiliser le I<fichier> indiqué au lieu de I</var/log/\"\n#~ \"wtmp>. L’option B<--file> peut être indiquée plusieurs fois, et tous les \"\n#~ \"fichiers concernés seront traités.\"\n\n#, no-wrap\n#~ msgid \"B<-F>,B< --fulltimes>\"\n#~ msgstr \"B<-F>, B<--fulltimes>\"\n\n#, no-wrap\n#~ msgid \"B<-i>,B< --ip>\"\n#~ msgstr \"B<-i>, B<--ip>\"\n\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host's IP number instead of the name.\"\n#~ msgstr \"\"\n#~ \"Comme B<--dns>, mais afficher l’adresse IP de l’hôte au lieu du nom.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgstr \"B<-n>, B<--limit> I<nombre>\"\n\n#, no-wrap\n#~ msgid \"B<-p>,B< --present >I<time>\"\n#~ msgstr \"B<-p>, B<--present> I<date>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time.  This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"Afficher les utilisateurs présents à la I<date> indiquée. C’est \"\n#~ \"équivalent à l’utilisation des options B<--since> et B<--until> ensemble \"\n#~ \"avec la même I<date>.\"\n\n#, no-wrap\n#~ msgid \"B<-R>,B< --nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#, no-wrap\n#~ msgid \"B<-s>,B< --since >I<time>\"\n#~ msgstr \"B<-s>, B<--since> I<date>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --until >I<time>\"\n#~ msgstr \"B<-t>, B<--until> I<date>\"\n\n#, no-wrap\n#~ msgid \"B<--time-format>I< format>\"\n#~ msgstr \"B<--time-format> I<format>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>.  The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option.  The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format.  The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"Définir le I<format> d’affichage de l’horodatage à celui de B<notime>, \"\n#~ \"B<short>, B<full> ou B<iso>. La variante B<notime> n’affichera pas \"\n#~ \"d’horodatage du tout, B<short> est la valeur par défaut et B<full> est \"\n#~ \"identique à l’option B<--fulltimes>. La variante B<iso> affichera \"\n#~ \"l’horodatage au format ISO 8601. Le format ISO contient l’indication de \"\n#~ \"fuseau horaire, ce qui est préférable lorsque la sortie est étudiée hors \"\n#~ \"du système.\"\n\n#, no-wrap\n#~ msgid \"B<-w>,B< --fullnames>\"\n#~ msgstr \"B<-w>, B<--fullnames>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --system>\"\n#~ msgstr \"B<-x>, B<--system>\"\n\n#~ msgid \"\"\n#~ \"The files I<wtmp> and I<btmp> might not be found.  The system only logs \"\n#~ \"information in these files if they are present.  This is a local \"\n#~ \"configuration issue.  If you want the files to be used, they can be \"\n#~ \"created with a simple B<touch>(1)  command (for example, I<touch /var/log/\"\n#~ \"wtmp>).\"\n#~ msgstr \"\"\n#~ \"Les fichiers I<wtmp> et I<btmp> sont parfois absents. Le système ne \"\n#~ \"journalise les informations que si les fichiers sont déjà présents, mais \"\n#~ \"ne les crée pas de lui-même. Il s'agit d'un choix local de configuration. \"\n#~ \"Si vous désirez utiliser ces journalisations, vous pouvez créer les \"\n#~ \"fichiers avec une simple commande B<touch>(1) (par exemple, I<touch /var/\"\n#~ \"log/wtmp>).\"\n\n#~ msgid \"\"\n#~ \"The last command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"La commande B<last> fait partie du paquet util-linux, elle est disponible \"\n#~ \"sur E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> l’archive du noyau LinuxE<.UE .>\"\n\n#~ msgid \"mesg - display (or do not display) messages from other users\"\n#~ msgstr \"\"\n#~ \"mesg - Afficher (ou ne pas afficher) des messages des autres utilisateurs\"\n\n#, fuzzy\n#~| msgid \"B<mesg> [option] [B<n>|B<y>]\"\n#~ msgid \"B<mesg> [I<option>] [B<n>|B<y>]\"\n#~ msgstr \"B<mesg> [I<option>] [B<n>|B<y>]\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The B<mesg> utility is invoked by a user to control write access others \"\n#~| \"have to the terminal device associated with standard error output.  If \"\n#~| \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~| \"B<write>(1)  may display messages on the terminal.\"\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output. If \"\n#~ \"write access is allowed, then programs such as B<talk>(1) and B<write>(1) \"\n#~ \"may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"L’utilitaire B<mesg> est appelé par un utilisateur pour contrôler l’accès \"\n#~ \"en écriture donné aux autres sur le périphérique de terminal associé à la \"\n#~ \"sortie d’erreur standard. Si l’accès en écriture est accordé, alors les \"\n#~ \"programmes comme B<talk>(1) ou B<write>(1) peuvent afficher des messages \"\n#~ \"sur le terminal.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Traditionally, write access is allowed by default.  However, as users \"\n#~| \"become more conscious of various security risks, there is a trend to \"\n#~| \"remove write access by default, at least for the primary login shell.  \"\n#~| \"To make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~| \"should be executed in your login scripts.\"\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default. However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell. To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"En général, l’accès en écriture est accordé par défaut. Cependant, comme \"\n#~ \"les utilisateurs prennent conscience des divers risques de sécurité, la \"\n#~ \"tendance est à la suppression de cet accès par défaut, au moins pour \"\n#~ \"l’interpréteur de commandes de connexion principal. Pour s’assurer que \"\n#~ \"les terminaux sont définis conformément aux attentes, B<mesg> devrait \"\n#~ \"être exécuté dans les scripts de connexion.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The B<mesg> utility silently exits with error status 2 if not executed \"\n#~| \"on terminal.  In this case execute B<mesg> is pointless.  The command \"\n#~| \"line option B<--verbose> forces mesg to print a warning in this \"\n#~| \"situation.  This behaviour has been introduced in version 2.33.\"\n#~ msgid \"\"\n#~ \"The B<mesg> utility silently exits with error status 2 if not executed on \"\n#~ \"terminal. In this case execute B<mesg> is pointless. The command line \"\n#~ \"option B<--verbose> forces mesg to print a warning in this situation. \"\n#~ \"This behaviour has been introduced in version 2.33.\"\n#~ msgstr \"\"\n#~ \"L'outil B<mesg> quitte silencieusement avec le code de retour B<2> s'il \"\n#~ \"n'est pas exécuté dans un terminal. Dans ce cas, l'exécution de B<mesg> \"\n#~ \"est inutile. L'option B<--verbose> de la ligne de commande force B<mesg> \"\n#~ \"à afficher un avertissement dans cette situation. Ce comportement a été \"\n#~ \"introduit dans la version 2.33.\"\n\n#, no-wrap\n#~ msgid \"ARGUMENTS\"\n#~ msgstr \"ARGUMENTS\"\n\n#~ msgid \"Disallow messages.\"\n#~ msgstr \"Interdire les messages.\"\n\n#~ msgid \"Allow messages to be displayed.\"\n#~ msgstr \"Permettre l’affichage des messages.\"\n\n#~ msgid \"B<-v>, B<--verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#~ msgid \"Explain what is being done.\"\n#~ msgstr \"Expliquer ce qui est fait.\"\n\n#, no-wrap\n#~ msgid \"B<-V>, B<--version>\"\n#~ msgstr \"B<-V>, B<--version>\"\n\n#~ msgid \"Display version information and exit.\"\n#~ msgstr \"Afficher le nom et la version du logiciel et quitter.\"\n\n#, no-wrap\n#~ msgid \"B<-h>, B<--help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#~ msgid \"Display help text and exit.\"\n#~ msgstr \"Afficher l’aide-mémoire puis quitter.\"\n\n#~ msgid \"The B<mesg> utility exits with one of the following values:\"\n#~ msgstr \"L’utilitaire B<mesg> quitte avec une des valeurs suivantes :\"\n\n#~ msgid \"Messages are allowed.\"\n#~ msgstr \"Les messages sont permis.\"\n\n#, no-wrap\n#~ msgid \"B<E<gt>1>\"\n#~ msgstr \"B<E<gt>1>\"\n\n#~ msgid \"An error has occurred.\"\n#~ msgstr \"Une erreur s’est produite.\"\n\n#~ msgid \"I</dev/[pt]ty[pq]?>\"\n#~ msgstr \"I</dev/>[I<pt>]I<ty>[I<pq>]?\"\n\n#, no-wrap\n#~ msgid \"HISTORY\"\n#~ msgstr \"HISTORIQUE\"\n\n#~ msgid \"A B<mesg> command appeared in Version 6 AT&T UNIX.\"\n#~ msgstr \"Une commande B<mesg> est apparue dans la version 6 du UNIX d’AT&T.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The mesg command is part of the util-linux package and is available from \"\n#~| \"https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgid \"\"\n#~ \"The B<mesg> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"La commande B<mesg> fait partie du paquet util-linux, elle est disponible \"\n#~ \"sur E<lt>https://www.kernel.org/pub/linux/utils/util-linuxE<gt>.\"\n\n#, no-wrap\n#~ msgid \"July 2014\"\n#~ msgstr \"Juillet 2014\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output.  If \"\n#~ \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~ \"B<write>(1)  may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"L’utilitaire B<mesg> est appelé par un utilisateur pour contrôler l’accès \"\n#~ \"en écriture donné aux autres sur le périphérique de terminal associé à la \"\n#~ \"sortie d’erreur standard. Si l’accès en écriture est accordé, alors les \"\n#~ \"programmes comme B<talk>(1) ou B<write>(1) peuvent afficher des messages \"\n#~ \"sur le terminal.\"\n\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default.  However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell.  To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"En général, l’accès en écriture est accordé par défaut. Cependant, comme \"\n#~ \"les utilisateurs prennent conscience des divers risques de sécurité, la \"\n#~ \"tendance est à la suppression de cet accès par défaut, au moins pour \"\n#~ \"l’interpréteur de commandes de connexion principal. Pour s’assurer que \"\n#~ \"les terminaux sont définis conformément aux attentes, B<mesg> devrait \"\n#~ \"être exécuté dans les scripts de connexion.\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility silently exits with error status 2 if not executed on \"\n#~ \"terminal.  In this case execute B<mesg> is pointless.  The command line \"\n#~ \"option B<--verbose> forces mesg to print a warning in this situation.  \"\n#~ \"This behaviour has been introduced in version 2.33.\"\n#~ msgstr \"\"\n#~ \"L'outil B<mesg> quitte silencieusement avec le code de retour B<2> s'il \"\n#~ \"n'est pas exécuté dans un terminal. Dans ce cas, l'exécution de B<mesg> \"\n#~ \"est inutile. L'option B<--verbose> de la ligne de commande force B<mesg> \"\n#~ \"à afficher un avertissement dans cette situation. Ce comportement a été \"\n#~ \"introduit dans la version 2.33.\"\n\n#, no-wrap\n#~ msgid \"B<-v>,B< --verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-V>,B< --version>\"\n#~ msgstr \"B<-V>, B<--version>\"\n\n#, no-wrap\n#~ msgid \"B<-h>,B< --help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 0>\"\n#~ msgstr \"B<\\\\ 0>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 1>\"\n#~ msgstr \"B<\\\\ 1>\"\n\n#~ msgid \"\"\n#~ \"The mesg command is part of the util-linux package and is available from \"\n#~ \"https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgstr \"\"\n#~ \"La commande B<mesg> fait partie du paquet util-linux, elle est disponible \"\n#~ \"sur E<lt>https://www.kernel.org/pub/linux/utils/util-linuxE<gt>.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<mountpoint> checks whether the given I<directory> or I<file> is \"\n#~| \"mentioned in the /proc/self/mountinfo file.\"\n#~ msgid \"\"\n#~ \"B<mountpoint> checks whether the given I<directory> or I<file> is \"\n#~ \"mentioned in the I</proc/self/mountinfo> file.\"\n#~ msgstr \"\"\n#~ \"B<mountpoint> vérifie si le I<répertoire> ou I<fichier> donné fait partie \"\n#~ \"du fichier I</proc/self/mountinfo>.\"\n\n#, fuzzy\n#~| msgid \"B<-d>,B< --fs-devno>\"\n#~ msgid \"B<-d>, B<--fs-devno>\"\n#~ msgstr \"B<-d>, B<--fs-devno>\"\n\n#~ msgid \"\"\n#~ \"Show the major/minor numbers of the device that is mounted on the given \"\n#~ \"directory.\"\n#~ msgstr \"\"\n#~ \"Afficher les numéros majeur et mineur du périphérique monté sur le \"\n#~ \"répertoire donné.\"\n\n#~ msgid \"B<-q>, B<--quiet>\"\n#~ msgstr \"B<-q>, B<--quiet>\"\n\n#, fuzzy\n#~| msgid \"Be quiet - don't print anything.\"\n#~ msgid \"Be quiet - don\\\\(cqt print anything.\"\n#~ msgstr \"Mode silencieux – ne rien afficher.\"\n\n#, no-wrap\n#~ msgid \"B<--nofollow>\"\n#~ msgstr \"B<--nofollow>\"\n\n#~ msgid \"\"\n#~ \"Do not follow symbolic link if it the last element of the I<directory> \"\n#~ \"path.\"\n#~ msgstr \"\"\n#~ \"Ne pas suivre le lien symbolique si c'est le dernier élément du chemin du \"\n#~ \"I<répertoire>.\"\n\n#, fuzzy\n#~| msgid \"B<-x>,B< --devno>\"\n#~ msgid \"B<-x>, B<--devno>\"\n#~ msgstr \"B<-x>, B<--devno>\"\n\n#~ msgid \"B<32>\"\n#~ msgstr \"B<32>\"\n\n#, no-wrap\n#~ msgid \"LIBMOUNT_DEBUG=all\"\n#~ msgstr \"B<LIBMOUNT_DEBUG=>I<all>\"\n\n#~ msgid \"enables libmount debug output.\"\n#~ msgstr \"Activer la sortie de débogage de libmount.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The util-linux B<mountpoint> implementation was written from scratch for \"\n#~| \"libmount.  The original version for sysvinit suite was written by Miquel \"\n#~| \"van Smoorenburg.\"\n#~ msgid \"\"\n#~ \"The util-linux B<mountpoint> implementation was written from scratch for \"\n#~ \"libmount. The original version for sysvinit suite was written by Miquel \"\n#~ \"van Smoorenburg.\"\n#~ msgstr \"\"\n#~ \"L’implémentation B<mountpoint> d’util-linux a été écrite à partir de zéro \"\n#~ \"pour libmount. La version originale pour l’ensemble sysvinit a été écrite \"\n#~ \"par Miquel van Smoorenburg.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The mountpoint command is part of the util-linux package and is \"\n#~| \"available from https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgid \"\"\n#~ \"The B<mountpoint> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"La commande B<mountpoint> fait partie du paquet util-linux, elle est \"\n#~ \"disponible sur E<lt>https://www.kernel.org/pub/linux/utils/util-\"\n#~ \"linuxE<gt>.\"\n\n#, no-wrap\n#~ msgid \"August 2019\"\n#~ msgstr \"Août 2019\"\n\n#~ msgid \"B<mountpoint> [B<-d>|B<-q>] I<directory> | I<file>\"\n#~ msgstr \"B<mountpoint> [B<-d>|B<-q>] I<répertoire> | I<fichier>\"\n\n#~ msgid \"\"\n#~ \"B<mountpoint> checks whether the given I<directory> or I<file> is \"\n#~ \"mentioned in the /proc/self/mountinfo file.\"\n#~ msgstr \"\"\n#~ \"B<mountpoint> vérifie si le I<répertoire> ou I<fichier> donné fait partie \"\n#~ \"du fichier I</proc/self/mountinfo>.\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --fs-devno>\"\n#~ msgstr \"B<-d>, B<--fs-devno>\"\n\n#, no-wrap\n#~ msgid \"B<-q>,B< --quiet>\"\n#~ msgstr \"B<-q>, B<--quiet>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --devno>\"\n#~ msgstr \"B<-x>, B<--devno>\"\n\n#~ msgid \"\"\n#~ \"The util-linux B<mountpoint> implementation was written from scratch for \"\n#~ \"libmount.  The original version for sysvinit suite was written by Miquel \"\n#~ \"van Smoorenburg.\"\n#~ msgstr \"\"\n#~ \"L’implémentation B<mountpoint> d’util-linux a été écrite à partir de zéro \"\n#~ \"pour libmount. La version originale pour l’ensemble sysvinit a été écrite \"\n#~ \"par Miquel van Smoorenburg.\"\n\n#~ msgid \"Karel Zak E<lt>kzak@redhat.comE<gt>\"\n#~ msgstr \"Karel Zak E<lt>kzak@redhat.comE<gt>\"\n\n#~ msgid \"\"\n#~ \"The mountpoint command is part of the util-linux package and is available \"\n#~ \"from https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgstr \"\"\n#~ \"La commande B<mountpoint> fait partie du paquet util-linux, elle est \"\n#~ \"disponible sur E<lt>https://www.kernel.org/pub/linux/utils/util-\"\n#~ \"linuxE<gt>.\"\n\n#, no-wrap\n#~ msgid \"systemd 249\"\n#~ msgstr \"systemd 249\"\n\n#, no-wrap\n#~ msgid \"runlevel\"\n#~ msgstr \"runlevel\"\n\n#, no-wrap\n#~ msgid \"OVERVIEW\"\n#~ msgstr \"DESCRIPTION\"\n\n#~ msgid \"\"\n#~ \"\\\"Runlevels\\\" are an obsolete way to start and stop groups of services \"\n#~ \"used in SysV init\\\\&. systemd provides a compatibility layer that maps \"\n#~ \"runlevels to targets, and associated binaries like B<runlevel>\\\\&. \"\n#~ \"Nevertheless, only one runlevel can be \\\"active\\\" at a given time, while \"\n#~ \"systemd can activate multiple targets concurrently, so the mapping to \"\n#~ \"runlevels is confusing and only approximate\\\\&. Runlevels should not be \"\n#~ \"used in new code, and are mostly useful as a shorthand way to refer the \"\n#~ \"matching systemd targets in kernel boot parameters\\\\&.\"\n#~ msgstr \"\"\n#~ \"Les niveaux d’exécution (Runlevel) sont une façon obsolète de démarrer ou \"\n#~ \"de stopper des groupes de services utilisés par le système \"\n#~ \"d’initialisation System V\\\\&. Systemd fournit une couche de compatibilité \"\n#~ \"qui crée un mappage entre les niveaux d’exécution et des cibles et les \"\n#~ \"binaires associés tel B<runlevel>\\\\&. Toutefois, un seul niveau \"\n#~ \"d’exécution peut être « actif » à un instant donné, tandis que systemd \"\n#~ \"peut activer plusieurs cibles simultanément. Par conséquent, le mappage \"\n#~ \"vers des niveaux d’exécution est peu clair et est seulement approximatif\"\n#~ \"\\\\&. Les niveaux d’exécution ne devraient pas être utilisés dans du \"\n#~ \"nouveau code et sont en grande partie utiles comme une manière abrégée de \"\n#~ \"référence aux cibles correspondantes de systemd dans les paramètres \"\n#~ \"d’amorçage du noyau\\\\&.\"\n\n#~ msgid \"B<Table\\\\ \\\\&1.\\\\ \\\\&Mapping between runlevels and systemd targets>\"\n#~ msgstr \"\"\n#~ \"B<Table\\\\ \\\\&1.\\\\ \\\\&Mappage niveaux d’exécution vs cibles de systemd>\"\n\n#, no-wrap\n#~ msgid \"Runlevel\"\n#~ msgstr \"Niveau d’exécution\"\n\n#, no-wrap\n#~ msgid \"Target\"\n#~ msgstr \"Cible\"\n\n#, no-wrap\n#~ msgid \".T&\"\n#~ msgstr \".T&\"\n\n#, no-wrap\n#~ msgid \"l l\"\n#~ msgstr \"l l\"\n\n#, no-wrap\n#~ msgid \"l l.\"\n#~ msgstr \"l l.\"\n\n#, no-wrap\n#~ msgid \"0\"\n#~ msgstr \"0\"\n\n#, no-wrap\n#~ msgid \"poweroff\\\\&.target\"\n#~ msgstr \"poweroff\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"rescue\\\\&.target\"\n#~ msgstr \"rescue\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"2, 3, 4\"\n#~ msgstr \"2, 3, 4\"\n\n#, no-wrap\n#~ msgid \"multi-user\\\\&.target\"\n#~ msgstr \"multi-user\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"5\"\n#~ msgstr \"5\"\n\n#, no-wrap\n#~ msgid \"graphical\\\\&.target\"\n#~ msgstr \"graphical\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"6\"\n#~ msgstr \"6\"\n\n#, no-wrap\n#~ msgid \"reboot\\\\&.target\"\n#~ msgstr \"reboot\\\\&.target\"\n\n#~ msgid \"\"\n#~ \"B<runlevel> prints the previous and current SysV runlevel if they are \"\n#~ \"known\\\\&.\"\n#~ msgstr \"\"\n#~ \"B<runlevel> affiche les niveaux d’exécution SysV précédent et actuel \"\n#~ \"s’ils sont connus\\\\&.\"\n\n#~ msgid \"\"\n#~ \"The two runlevel characters are separated by a single space character\\\\&. \"\n#~ \"If a runlevel cannot be determined, N is printed instead\\\\&. If neither \"\n#~ \"can be determined, the word \\\"unknown\\\" is printed\\\\&.\"\n#~ msgstr \"\"\n#~ \"Les deux caractères de niveau d’exécution sont séparés par un caractère \"\n#~ \"espace unique\\\\&. Si un niveau ne peut pas être déterminé, N est affiché\"\n#~ \"\\\\&. Si aucun niveau ne peut être déterminé, le mot « unknown » est \"\n#~ \"affiché\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Unless overridden in the environment, this will check the utmp database \"\n#~ \"for recent runlevel changes\\\\&.\"\n#~ msgstr \"\"\n#~ \"À moins d’être écrasé dans l’environnement, cela interrogera la base de \"\n#~ \"données utmp sur les modifications récentes des niveaux d’exécution\\\\&.\"\n\n#~ msgid \"The following option is understood:\"\n#~ msgstr \"L’option suivante peut être utilisée :\"\n\n#~ msgid \"B<--help>\"\n#~ msgstr \"B<--help>\"\n\n#~ msgid \"Print a short help text and exit\\\\&.\"\n#~ msgstr \"Afficher un aide-mémoire succinct et quitter\\\\&.\"\n\n#~ msgid \"\"\n#~ \"If one or both runlevels could be determined, 0 is returned, a non-zero \"\n#~ \"failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"Si un ou les deux niveaux d’exécution peuvent être déterminés, B<0> est \"\n#~ \"renvoyé et une valeur différente l’est en cas d’échec\\\\&.\"\n\n#~ msgid \"I<$RUNLEVEL>\"\n#~ msgstr \"I<$RUNLEVEL>\"\n\n#~ msgid \"\"\n#~ \"If I<$RUNLEVEL> is set, B<runlevel> will print this value as current \"\n#~ \"runlevel and ignore utmp\\\\&.\"\n#~ msgstr \"\"\n#~ \"Si I<$RUNLEVEL> est défini, B<runlevel> affichera cette valeur comme \"\n#~ \"niveau d’exécution actuel et ignorera utmp\\\\&.\"\n\n#~ msgid \"I<$PREVLEVEL>\"\n#~ msgstr \"I<$PREVLEVEL>\"\n\n#~ msgid \"\"\n#~ \"If I<$PREVLEVEL> is set, B<runlevel> will print this value as previous \"\n#~ \"runlevel and ignore utmp\\\\&.\"\n#~ msgstr \"\"\n#~ \"Si I<$PREVLEVEL> est défini, B<runlevel> affichera cette valeur comme \"\n#~ \"niveau d’exécution précédent et ignorera utmp\\\\&.\"\n\n#~ msgid \"/run/utmp\"\n#~ msgstr \"/run/utmp\"\n\n#~ msgid \"\"\n#~ \"The utmp database B<runlevel> reads the previous and current runlevel from\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"La base de données utmp dans laquelle B<runlevel> lit les niveaux \"\n#~ \"d’exécution précédent et actuel\\\\&.\"\n\n#~ msgid \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n\n#, no-wrap\n#~ msgid \"systemd 250\"\n#~ msgstr \"systemd 250\"\n\n#~ msgid \"shutdown - Halt, power-off or reboot the machine\"\n#~ msgstr \"shutdown - Arrêter, éteindre ou redémarrer la machine\"\n\n#~ msgid \"B<shutdown> [OPTIONS...] [TIME] [WALL...]\"\n#~ msgstr \"B<shutdown> [options...] [heure] [avertissement...]\"\n\n#~ msgid \"B<shutdown> may be used to halt, power-off or reboot the machine\\\\&.\"\n#~ msgstr \"\"\n#~ \"B<shutdown> peut être utilisé pour arrêter, éteindre ou redémarrer la \"\n#~ \"machine\\\\&.\"\n\n#~ msgid \"\"\n#~ \"The first argument may be a time string (which is usually \\\"now\\\")\\\\&. \"\n#~ \"Optionally, this may be followed by a wall message to be sent to all \"\n#~ \"logged-in users before going down\\\\&.\"\n#~ msgstr \"\"\n#~ \"Le premier argument peut être une chaîne d’indication d’heure (couramment \"\n#~ \"« now »)\\\\&. Facultativement, il peut être suivi d’un message \"\n#~ \"d’avertissement à envoyer à tous les utilisateurs connectés avant la mise \"\n#~ \"à l’arrêt\\\\&.\"\n\n#~ msgid \"\"\n#~ \"The time string may either be in the format \\\"hh:mm\\\" for hour/minutes \"\n#~ \"specifying the time to execute the shutdown at, specified in 24h clock \"\n#~ \"format\\\\&. Alternatively it may be in the syntax \\\"+m\\\" referring to the \"\n#~ \"specified number of minutes m from now\\\\&.  \\\"now\\\" is an alias for \"\n#~ \"\\\"+0\\\", i\\\\&.e\\\\&. for triggering an immediate shutdown\\\\&. If no time \"\n#~ \"argument is specified, \\\"+1\\\" is implied\\\\&.\"\n#~ msgstr \"\"\n#~ \"La chaîne d’heure peut être précisée, soit dans le format « hh:mm » pour \"\n#~ \"heures/minutes précisant le moment d’exécution, au format 24 h, soit avec \"\n#~ \"la syntaxe « +m » indiquant le nombre I<m> de minutes à partir de \"\n#~ \"maintenant (now)\\\\&. « now » est un alias pour I<+0>, c'est-à-dire un \"\n#~ \"arrêt immédiat\\\\&. Si aucune indication d’heure n’est fournie, I<+1> est \"\n#~ \"implicite\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Note that to specify a wall message you must specify a time argument, too\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Notez que pour indiquer un message d’avertissement, une indication \"\n#~ \"d’heure doit être aussi fournie\\\\&.\"\n\n#~ msgid \"\"\n#~ \"If the time argument is used, 5 minutes before the system goes down the /\"\n#~ \"run/nologin file is created to ensure that further logins shall not be \"\n#~ \"allowed\\\\&.\"\n#~ msgstr \"\"\n#~ \"Si un argument d’heure est utilisé, cinq minutes avant l’arrêt du \"\n#~ \"système, le fichier I</run/nologin> est créé pour assurer que des \"\n#~ \"connexions futures ne seront pas autorisées\\\\&.\"\n\n#~ msgid \"The following options are understood:\"\n#~ msgstr \"Les options suivantes sont comprises :\"\n\n#~ msgid \"B<-H>, B<--halt>\"\n#~ msgstr \"B<-H>, B<--halt>\"\n\n#~ msgid \"Halt the machine\\\\&.\"\n#~ msgstr \"Arrêter la machine\\\\&.\"\n\n#~ msgid \"B<-P>, B<--poweroff>\"\n#~ msgstr \"B<-P>, B<--poweroff>\"\n\n#~ msgid \"Power-off the machine (the default)\\\\&.\"\n#~ msgstr \"Mettre hors tension de la machine (comportement par défaut)\\\\&.\"\n\n#~ msgid \"B<-r>, B<--reboot>\"\n#~ msgstr \"B<-r>, B<--reboot>\"\n\n#~ msgid \"Equivalent to B<--poweroff>, unless B<--halt> is specified\\\\&.\"\n#~ msgstr \"\"\n#~ \"Équivalent à B<--poweroff>, à moins que B<--halt> ne soit précisé\\\\&.\"\n\n#~ msgid \"Do not halt, power-off, reboot, just write wall message\\\\&.\"\n#~ msgstr \"\"\n#~ \"Ne pas arrêter, éteindre ou redémarrer la machine, écrire seulement un \"\n#~ \"message d’avertissement\\\\&.\"\n\n#~ msgid \"B<--no-wall>\"\n#~ msgstr \"B<--no-wall>\"\n\n#~ msgid \"Do not send wall message before halt, power-off, reboot\\\\&.\"\n#~ msgstr \"\"\n#~ \"Ne pas envoyer de message d’avertissement avant l’arrêt, l’extinction ou \"\n#~ \"le redémarrage\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Cancel a pending shutdown\\\\&. This may be used to cancel the effect of an \"\n#~ \"invocation of B<shutdown> with a time argument that is not \\\"+0\\\" or \\\"now\"\n#~ \"\\\"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Annuler un arrêt programmé\\\\&. Cela peut être utiliser pour annuler \"\n#~ \"l’effet d’une invocation de B<shutdown> avec un argument de temps qui \"\n#~ \"n’est pas I<+0> ou I<now>\\\\&.\"\n\n#~ msgid \"On success, 0 is returned, a non-zero failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"En cas de succès, B<0> est renvoyé, autrement, un code d'échec non nul \"\n#~ \"est renvoyé\\\\&.\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<halt>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<halt>(8), B<wall>(1)\"\n\n#, fuzzy\n#~| msgid \"B<show>\"\n#~ msgid \"B<--show>\"\n#~ msgstr \"B<show>\"\n\n#, no-wrap\n#~ msgid \"System Administration\"\n#~ msgstr \"Administration Système\"\n\n#~ msgid \"B<sulogin> [options] [I<tty>]\"\n#~ msgstr \"B<sulogin> [I<options>] [I<tty>]\"\n\n#~ msgid \"\"\n#~ \"B<sulogin> is invoked by B<init> when the system goes into single-user \"\n#~ \"mode.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> est appelé par B<init> quand le système passe en mode mono-\"\n#~ \"utilisateur.\"\n\n#, fuzzy\n#~| msgid \"Give root password for system maintenance\"\n#~ msgid \"\"\n#~ \"Give root password for system maintenance (or type Control-D for normal \"\n#~ \"startup):\"\n#~ msgstr \"Donnez le mot de passe du superutilisateur pour la maintenance\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"If the root account is locked and --force is specified, no password is \"\n#~| \"required.\"\n#~ msgid \"\"\n#~ \"If the root account is locked and B<--force> is specified, no password is \"\n#~ \"required.\"\n#~ msgstr \"\"\n#~ \"Si le compte superutilisateur est verrouillé et l’option B<--force> \"\n#~ \"indiquée, aucun mot de passe n’est demandé.\"\n\n#, no-wrap\n#~ msgid \"B<-e>, B<--force>\"\n#~ msgstr \"B<-e>, B<--force>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"If the default method of obtaining the root password from the system via \"\n#~| \"B<getpwnam>(3)  fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~| \"get the password.  If these files are damaged or nonexistent, or when \"\n#~| \"root account is locked by '!' or '*' at the begin of the password then \"\n#~| \"B<sulogin> will B<start a root shell without asking for a password>.\"\n#~ msgid \"\"\n#~ \"If the default method of obtaining the root password from the system via \"\n#~ \"B<getpwnam>(3) fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~ \"get the password. If these files are damaged or nonexistent, or when root \"\n#~ \"account is locked by \\\\(aq!\\\\(aq or \\\\(aq*\\\\(aq at the begin of the \"\n#~ \"password then B<sulogin> will B<start a root shell without asking for a \"\n#~ \"password>.\"\n#~ msgstr \"\"\n#~ \"Si la méthode d’obtention par défaut du mot de passe du superutilisateur \"\n#~ \"pour le système avec B<getpwnam>(3) échoue, examiner I</etc/passwd> et I</\"\n#~ \"etc/shadow> pour obtenir le mot de passe. Si ces fichiers sont endommagés \"\n#~ \"ou n’existent pas, ou lorsque le compte superutilisateur est verrouillé \"\n#~ \"par « ! » ou « * » au commencement du mot de passe, alors B<sulogin> \"\n#~ \"démarrera un B<interpréteur de commandes de superutilisateur sans \"\n#~ \"demander de mot de passe>.\"\n\n#, no-wrap\n#~ msgid \"B<-p>, B<--login-shell>\"\n#~ msgstr \"B<-p>, B<--login-shell>\"\n\n#~ msgid \"\"\n#~ \"Specifying this option causes B<sulogin> to start the shell process as a \"\n#~ \"login shell.\"\n#~ msgstr \"\"\n#~ \"Forcer B<sulogin> à démarrer le processus d’interpréteur de commandes \"\n#~ \"comme un interpréteur de connexion.\"\n\n#, fuzzy\n#~| msgid \"B<-t>, B<--timeout >I<seconds>\"\n#~ msgid \"B<-t>, B<--timeout> I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout> I<secondes>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Specify the maximum amount of time to wait for user input.  By default, \"\n#~| \"B<sulogin> will wait forever.\"\n#~ msgid \"\"\n#~ \"Specify the maximum amount of time to wait for user input. By default, \"\n#~ \"B<sulogin> will wait forever.\"\n#~ msgstr \"\"\n#~ \"Indiquer la durée d’attente maximale pour une saisie d’utilisateur. Par \"\n#~ \"défaut, B<sulogin> attendra indéfiniment.\"\n\n#~ msgid \"\"\n#~ \"B<sulogin> was written by Miquel van Smoorenburg for sysvinit and later \"\n#~ \"ported to util-linux by Dave Reisner and Karel Zak.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> a été écrit par Miquel van Smoorenburg pour sysvinit puis \"\n#~ \"ensuite porté pour util-linux par Dave Reisner et Karel Zak.\"\n\n#~ msgid \"\"\n#~ \"If the root account is locked and --force is specified, no password is \"\n#~ \"required.\"\n#~ msgstr \"\"\n#~ \"Si le compte superutilisateur est verrouillé et l’option B<--force> \"\n#~ \"indiquée, aucun mot de passe n’est demandé.\"\n\n#~ msgid \"\"\n#~ \"If the default method of obtaining the root password from the system via \"\n#~ \"B<getpwnam>(3)  fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~ \"get the password.  If these files are damaged or nonexistent, or when \"\n#~ \"root account is locked by '!' or '*' at the begin of the password then \"\n#~ \"B<sulogin> will B<start a root shell without asking for a password>.\"\n#~ msgstr \"\"\n#~ \"Si la méthode d’obtention par défaut du mot de passe du superutilisateur \"\n#~ \"pour le système avec B<getpwnam>(3) échoue, examiner I</etc/passwd> et I</\"\n#~ \"etc/shadow> pour obtenir le mot de passe. Si ces fichiers sont endommagés \"\n#~ \"ou n’existent pas, ou lorsque le compte superutilisateur est verrouillé \"\n#~ \"par « ! » ou « * » au commencement du mot de passe, alors B<sulogin> \"\n#~ \"démarrera un B<interpréteur de commandes de superutilisateur sans \"\n#~ \"demander de mot de passe>.\"\n\n#, no-wrap\n#~ msgid \"B<-t>, B<--timeout >I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout> I<secondes>\"\n\n#~ msgid \"\"\n#~ \"Specify the maximum amount of time to wait for user input.  By default, \"\n#~ \"B<sulogin> will wait forever.\"\n#~ msgstr \"\"\n#~ \"Indiquer la durée d’attente maximale pour une saisie d’utilisateur. Par \"\n#~ \"défaut, B<sulogin> attendra indéfiniment.\"\n\n#~ msgid \"\"\n#~ \"The sulogin command is part of the util-linux package and is available \"\n#~ \"from E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"La commande B<sulogin> fait partie du paquet util-linux, elle est \"\n#~ \"disponible sur E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\"\n#~ \"\\\\:/util-linux/>l’archive du noyau LinuxE<.UE .>\"\n\n#~ msgid \"B<-f>, B<--follow>\"\n#~ msgstr \"B<-f>, B<--follow>\"\n\n#, fuzzy\n#~| msgid \"B<-o>,B< --output >I<file>\"\n#~ msgid \"B<-o>, B<--output> I<file>\"\n#~ msgstr \"B<-o>, B<--output> I<fichier>\"\n\n#~ msgid \"Write command output to I<file> instead of standard output.\"\n#~ msgstr \"\"\n#~ \"Écrire la sortie de la commande dans I<fichier> au lieu de la sortie \"\n#~ \"standard.\"\n\n#~ msgid \"B<-r>, B<--reverse>\"\n#~ msgstr \"B<-r>, B<--reverse>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<utmpdump> can be useful in cases of corrupted utmp or wtmp entries.  \"\n#~| \"It can dump out utmp/wtmp to an ASCII file, which can then be edited to \"\n#~| \"remove bogus entries, and reintegrated using:\"\n#~ msgid \"\"\n#~ \"B<utmpdump> can be useful in cases of corrupted utmp or wtmp entries. It \"\n#~ \"can dump out utmp/wtmp to an ASCII file, which can then be edited to \"\n#~ \"remove bogus entries, and reintegrated using:\"\n#~ msgstr \"\"\n#~ \"B<utmpdump> peut être utile en cas d’entrées utmp ou wtmp corrompues. Il \"\n#~ \"peut vider utmp ou wtmp dans un fichier ASCII, qui peut ensuite être \"\n#~ \"modifié pour supprimer les entrées boguées, puis réintégré en utilisant :\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Only the binary version of the B<utmp>(5)  is standardised.  Textual \"\n#~| \"dumps may become incompatible in future.\"\n#~ msgid \"\"\n#~ \"Only the binary version of the B<utmp>(5) is standardised. Textual dumps \"\n#~ \"may become incompatible in future.\"\n#~ msgstr \"\"\n#~ \"Seule la version binaire de B<utmp>(5) est standardisée. Les vidages \"\n#~ \"textuels peuvent devenir incompatibles à l'avenir.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The version 2.28 was the last one that printed text output using \"\n#~| \"B<ctime>(3)  timestamp format.  Newer dumps use millisecond precision \"\n#~| \"ISO-8601 timestamp format in UTC-0 timezone.  Conversion from former \"\n#~| \"timestamp format can be made to binary, although attempt to do so can \"\n#~| \"lead the timestamps to drift amount of timezone offset.\"\n#~ msgid \"\"\n#~ \"The version 2.28 was the last one that printed text output using \"\n#~ \"B<ctime>(3) timestamp format. Newer dumps use millisecond precision \"\n#~ \"ISO-8601 timestamp format in UTC-0 timezone. Conversion from former \"\n#~ \"timestamp format can be made to binary, although attempt to do so can \"\n#~ \"lead the timestamps to drift amount of timezone offset.\"\n#~ msgstr \"\"\n#~ \"La version 2.28 était la dernière qui produisait une sortie texte avec le \"\n#~ \"format d'horodatage B<ctime>(3). Les vidages plus récents utilisent le \"\n#~ \"format d'horodatage ISO-8601 avec une précision d'une milliseconde dans \"\n#~ \"le fuseau horaire UTC-0. La conversion à partir de l'ancien format \"\n#~ \"d'horodatage peut être faite vers le binaire, bien que les tentatives \"\n#~ \"pour faire ainsi puissent mener à une dérive d'un certain nombre de \"\n#~ \"fuseaux horaires.\"\n\n#~ msgid \"B<utmpdump> [options] [I<filename>]\"\n#~ msgstr \"B<utmpdump> [B<options>] [I<fichier>]\"\n\n#~ msgid \"\"\n#~ \"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw \"\n#~ \"format, so they can be examined.  B<utmpdump> reads from stdin unless a \"\n#~ \"I<filename> is passed.\"\n#~ msgstr \"\"\n#~ \"B<utmpdump> est un programme simple pour vider des fichiers utmp et wtmp \"\n#~ \"au format brut, afin de pouvoir les examiner. B<utmpdump> lit l’entrée \"\n#~ \"standard sauf si un I<fichier> est indiqué.\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --follow>\"\n#~ msgstr \"B<-f>, B<--follow>\"\n\n#, no-wrap\n#~ msgid \"B<-o>,B< --output >I<file>\"\n#~ msgstr \"B<-o>, B<--output> I<fichier>\"\n\n#, no-wrap\n#~ msgid \"B<-r>,B< --reverse>\"\n#~ msgstr \"B<-r>, B<--reverse>\"\n\n#~ msgid \"\"\n#~ \"Only the binary version of the B<utmp>(5)  is standardised.  Textual \"\n#~ \"dumps may become incompatible in future.\"\n#~ msgstr \"\"\n#~ \"Seule la version binaire de B<utmp>(5) est standardisée. Les vidages \"\n#~ \"textuels peuvent devenir incompatibles à l'avenir.\"\n\n#~ msgid \"\"\n#~ \"The version 2.28 was the last one that printed text output using \"\n#~ \"B<ctime>(3)  timestamp format.  Newer dumps use millisecond precision \"\n#~ \"ISO-8601 timestamp format in UTC-0 timezone.  Conversion from former \"\n#~ \"timestamp format can be made to binary, although attempt to do so can \"\n#~ \"lead the timestamps to drift amount of timezone offset.\"\n#~ msgstr \"\"\n#~ \"La version 2.28 était la dernière qui produisait une sortie texte avec le \"\n#~ \"format d'horodatage B<ctime>(3). Les vidages plus récents utilisent le \"\n#~ \"format d'horodatage ISO-8601 avec une précision d'une milliseconde dans \"\n#~ \"le fuseau horaire UTC-0. La conversion à partir de l'ancien format \"\n#~ \"d'horodatage peut être faite vers le binaire, bien que les tentatives \"\n#~ \"pour faire ainsi puissent mener à une dérive d'un certain nombre de \"\n#~ \"fuseaux horaires.\"\n\n#~ msgid \"\"\n#~ \"You may B<not> use the B<-r> option, as the format for the utmp/wtmp \"\n#~ \"files strongly depends on the input format.  This tool was B<not> written \"\n#~ \"for normal use, but for debugging only.\"\n#~ msgstr \"\"\n#~ \"Vous ne devriez B<pas> utiliser l’option B<-r>, car le format des \"\n#~ \"fichiers utmp ou wtmp dépend fortement du format d’entrée. Cet outil n’a \"\n#~ \"B<pas> été écrit pour une utilisation normale, mais seulement pour le \"\n#~ \"débogage.\"\n\n#~ msgid \"\"\n#~ \"The utmpdump command is part of the util-linux package and is available \"\n#~ \"from E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"La commande B<utmpdump> fait partie du paquet util-linux, elle est \"\n#~ \"disponible sur E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\"\n#~ \"\\\\:/util-linux/>l’archive du noyau LinuxE<.UE .>\"\n\n#~ msgid \"\"\n#~ \"B<wall> [B<-n>] [B<-t> I<timeout>] [B<-g> I<group>] [I<message> | I<file>]\"\n#~ msgstr \"\"\n#~ \"B<wall> [B<-n>] [B<-t> I<délai>] [B<-g> I<groupe>] [I<message> | \"\n#~ \"I<fichier>]\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<wall> displays a I<message>, or the contents of a I<file>, or \"\n#~| \"otherwise its standard input, on the terminals of all currently logged \"\n#~| \"in users.  The command will wrap lines that are longer than 79 \"\n#~| \"characters.  Short lines are whitespace padded to have 79 characters.  \"\n#~| \"The command will always put a carriage return and new line at the end of \"\n#~| \"each line.\"\n#~ msgid \"\"\n#~ \"B<wall> displays a I<message>, or the contents of a I<file>, or otherwise \"\n#~ \"its standard input, on the terminals of all currently logged in users. \"\n#~ \"The command will wrap lines that are longer than 79 characters. Short \"\n#~ \"lines are whitespace padded to have 79 characters. The command will \"\n#~ \"always put a carriage return and new line at the end of each line.\"\n#~ msgstr \"\"\n#~ \"B<wall> affiche un I<message>, le contenu d’un I<fichier> ou sinon son \"\n#~ \"entrée standard, sur les terminaux de tous les utilisateurs actuellement \"\n#~ \"connectés. La commande dédoublera les lignes excédant 79 caractères. Les \"\n#~ \"lignes courtes sont complétées par des espaces pour faire 79 caractères. \"\n#~ \"La commande ajoutera toujours un retour chariot et un changement de ligne \"\n#~ \"à la fin de chaque ligne.\"\n\n#~ msgid \"\"\n#~ \"Only the superuser can write on the terminals of users who have chosen to \"\n#~ \"deny messages or are using a program which automatically denies messages.\"\n#~ msgstr \"\"\n#~ \"Seul le superutilisateur peut écrire sur les terminaux des utilisateurs \"\n#~ \"qui ont choisi de refuser les messages ou qui utilisent un programme qui \"\n#~ \"interdit automatiquement les messages.\"\n\n#~ msgid \"\"\n#~ \"Reading from a I<file> is refused when the invoker is not superuser and \"\n#~ \"the program is set-user-ID or set-group-ID.\"\n#~ msgstr \"\"\n#~ \"La lecture depuis un I<fichier> est interdite quand l'appelant n'est pas \"\n#~ \"superutilisateur et que le programme est set-user-ID ou set-group-ID.\"\n\n#, fuzzy\n#~| msgid \"B<-n>,B< --nobanner>\"\n#~ msgid \"B<-n>, B<--nobanner>\"\n#~ msgstr \"B<-n>, B<--nobanner>\"\n\n#~ msgid \"Suppress the banner.\"\n#~ msgstr \"Supprimer la bannière.\"\n\n#, fuzzy\n#~| msgid \"B<-t>,B< --timeout >I<timeout>\"\n#~ msgid \"B<-t>, B<--timeout> I<timeout>\"\n#~ msgstr \"B<-t>, B<--timeout> I<délai>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Abandon the write attempt to the terminals after I<timeout> seconds.  \"\n#~| \"This I<timeout> must be a positive integer.  The default value is 300 \"\n#~| \"seconds, which is a legacy from the time when people ran terminals over \"\n#~| \"modem lines.\"\n#~ msgid \"\"\n#~ \"Abandon the write attempt to the terminals after I<timeout> seconds. This \"\n#~ \"I<timeout> must be a positive integer. The default value is 300 seconds, \"\n#~ \"which is a legacy from the time when people ran terminals over modem \"\n#~ \"lines.\"\n#~ msgstr \"\"\n#~ \"Abandonner la tentative d’écriture sur les terminaux après \"\n#~ \"I<délai> secondes. Ce I<délai> doit être un entier positif. La valeur par \"\n#~ \"défaut est de 300 secondes, qui est un héritage de l'époque où les gens \"\n#~ \"se connectaient aux terminaux à l'aide de modems.\"\n\n#, fuzzy\n#~| msgid \"B<-g>,B< --group >I<group>\"\n#~ msgid \"B<-g>, B<--group> I<group>\"\n#~ msgstr \"B<-g>, B<--group> I<groupe>\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Limit printing message to members of group defined as a I<group> \"\n#~| \"argument.  The argument can be group name or GID.\"\n#~ msgid \"\"\n#~ \"Limit printing message to members of group defined as a I<group> \"\n#~ \"argument. The argument can be group name or GID.\"\n#~ msgstr \"\"\n#~ \"Limiter l'affichage du message aux membres du groupe défini comme \"\n#~ \"paramètre I<groupe>. Le paramètre peut être un nom de groupe ou un GID.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Some sessions, such as wdm, that have in the beginning of B<utmp>(5)  \"\n#~| \"ut_type data a ':' character will not get the message from B<wall>.  \"\n#~| \"This is done to avoid write errors.\"\n#~ msgid \"\"\n#~ \"Some sessions, such as B<wdm>(1x), that have in the beginning of \"\n#~ \"B<utmp>(5) ut_type data a \\\\(aq:\\\\(aq character will not get the message \"\n#~ \"from B<wall>. This is done to avoid write errors.\"\n#~ msgstr \"\"\n#~ \"Certaines sessions, comme wdm, qui ont un caractère « B<:> » au début des \"\n#~ \"données ut_type d’B<utmp>(5) n’obtiendront pas le message de B<wall>. \"\n#~ \"Cela est fait pour éviter les erreurs d’écriture.\"\n\n#~ msgid \"A B<wall> command appeared in Version 7 AT&T UNIX.\"\n#~ msgstr \"Une commande B<wall> est apparue dans la version 7 d’UNIX AT&T.\"\n\n#~ msgid \"B<mesg>(1), B<talk>(1), B<write>(1), B<shutdown>(8)\"\n#~ msgstr \"B<mesg>(1), B<talk>(1), B<write>(1), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"August 2013\"\n#~ msgstr \"août 2013\"\n\n#~ msgid \"\"\n#~ \"B<wall> displays a I<message>, or the contents of a I<file>, or otherwise \"\n#~ \"its standard input, on the terminals of all currently logged in users.  \"\n#~ \"The command will wrap lines that are longer than 79 characters.  Short \"\n#~ \"lines are whitespace padded to have 79 characters.  The command will \"\n#~ \"always put a carriage return and new line at the end of each line.\"\n#~ msgstr \"\"\n#~ \"B<wall> affiche un I<message>, le contenu d’un I<fichier> ou sinon son \"\n#~ \"entrée standard, sur les terminaux de tous les utilisateurs actuellement \"\n#~ \"connectés. La commande dédoublera les lignes excédant 79 caractères. Les \"\n#~ \"lignes courtes sont complétées par des espaces pour faire 79 caractères. \"\n#~ \"La commande ajoutera toujours un retour chariot et un changement de ligne \"\n#~ \"à la fin de chaque ligne.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --nobanner>\"\n#~ msgstr \"B<-n>, B<--nobanner>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --timeout >I<timeout>\"\n#~ msgstr \"B<-t>, B<--timeout> I<délai>\"\n\n#~ msgid \"\"\n#~ \"Abandon the write attempt to the terminals after I<timeout> seconds.  \"\n#~ \"This I<timeout> must be a positive integer.  The default value is 300 \"\n#~ \"seconds, which is a legacy from the time when people ran terminals over \"\n#~ \"modem lines.\"\n#~ msgstr \"\"\n#~ \"Abandonner la tentative d’écriture sur les terminaux après \"\n#~ \"I<délai> secondes. Ce I<délai> doit être un entier positif. La valeur par \"\n#~ \"défaut est de 300 secondes, qui est un héritage de l'époque où les gens \"\n#~ \"se connectaient aux terminaux à l'aide de modems.\"\n\n#, no-wrap\n#~ msgid \"B<-g>,B< --group >I<group>\"\n#~ msgstr \"B<-g>, B<--group> I<groupe>\"\n\n#~ msgid \"\"\n#~ \"Limit printing message to members of group defined as a I<group> \"\n#~ \"argument.  The argument can be group name or GID.\"\n#~ msgstr \"\"\n#~ \"Limiter l'affichage du message aux membres du groupe défini comme \"\n#~ \"paramètre I<groupe>. Le paramètre peut être un nom de groupe ou un GID.\"\n\n#~ msgid \"\"\n#~ \"Some sessions, such as wdm, that have in the beginning of B<utmp>(5)  \"\n#~ \"ut_type data a ':' character will not get the message from B<wall>.  This \"\n#~ \"is done to avoid write errors.\"\n#~ msgstr \"\"\n#~ \"Certaines sessions, comme wdm, qui ont un caractère « B<:> » au début des \"\n#~ \"données ut_type d’B<utmp>(5) n’obtiendront pas le message de B<wall>. \"\n#~ \"Cela est fait pour éviter les erreurs d’écriture.\"\n\n#~ msgid \"\"\n#~ \"The wall command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"La commande B<wall> fait partie du paquet util-linux, elle est disponible \"\n#~ \"sur E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> l’archive du noyau LinuxE<.UE .>\"\n"
  },
  {
    "path": "man/po/hu.po",
    "content": "# Hungarian translation of the sysvinit man pages.\n# Fehér -Aries- János <aries@vlug.vein.hu>, 2001.\n# Hermann Benedek <bence@intercom.hu>, 2001.\n# Szalay Attila <sasa@sophia.jpte.hu>, 2001.\n# Zelena Endre <ezelena@lme.linux.hu>, 2001.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-01 15:59-0300\\n\"\n\"PO-Revision-Date: 2001-01-05 12:34+0100\\n\"\n\"Last-Translator: Szalay Attila <sasa@sophia.jpte.hu>\\n\"\n\"Language-Team: Hungarian <>\\n\"\n\"Language: hu\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, fuzzy, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NÉV\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"ÖSSZEGZÉS\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"LEÍRÁS\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"KAPCSOLÓK\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-f>, B<--file> I<fájl>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-f>, B<--file> I<fájl>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"MEGJEGYZÉS\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"SZERZŐ\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"LÁSD MÉG\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"KILÉPÉSI ÁLLAPOT\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"PÉLDÁK\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:172\n#, no-wrap\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:175\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:253\n#, fuzzy, no-wrap\n#| msgid \"B<-V>, B<--version>\"\nmsgid \"B<--version>\"\nmsgstr \"B<-V>, B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"FÁJLOK\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\n#, fuzzy\n#| msgid \"\"\n#| \"B<Init> was written by Miquel van Smoorenburg (miquels@cistron.nl).  This \"\n#| \"manual page was written by Sebastian Lederer (lederer@francium.informatik.\"\n#| \"uni-bonn.de) and modified by Michael Haardt (u31b3hs@pool.informatik.rwth-\"\n#| \"aachen.de).\"\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"A B<init>-et Miquel van Smoorenburg (miquels@cistron.nl) , a hozzávaló \"\n\"kézikönyvlapot pedig Sebastian Lederer (lederer@francium.informatik.uni-bonn.\"\n\"de) írta és Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de) \"\n\"módosította.\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initctl.5:17\n#, fuzzy, no-wrap\n#| msgid \"INITTAB\"\nmsgid \"INITCTL\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:152\n#, fuzzy\n#| msgid \"B<sysinit>\"\nmsgid \"B<init>(8)\"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initscript.5:18\n#, fuzzy, no-wrap\n#| msgid \"July 2014\"\nmsgid \"July 10, 2003\"\nmsgstr \"2014 július\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:74\n#, fuzzy\n#| msgid \"B<init>(8), B<telinit>(8)\"\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\"inittab - a sysv-compatibilis init process által használt inittab fájl \"\n\"formátum.\"\n\n#. type: Plain text\n#: ../inittab.5:36\n#, fuzzy\n#| msgid \"\"\n#| \"The B<inittab> file describes which processes are started at bootup and \"\n#| \"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n#| \"gettys...).  B<Init>(8)  distinguishes multiple I<runlevels>, each of \"\n#| \"which can have its own set of processes that are started.  Valid \"\n#| \"runlevels are B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> \"\n#| \"entries.  An entry in the B<inittab> file has the following format:\"\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\"Az B<inittab> fájl leírja mely processek indulnak el az induláskor és a \"\n\"normál műveletek közben (például:\\\\& /etc/rc, getty-k ...). Az B<init>(8)  \"\n\"megkülönböztet olyan többszörös I<futásszinteket>, ezek mindegyike saját \"\n\"beállítása lehet a futtantandó programokról. Érvényés futási szintek a B<0>-\"\n\"B<6>, ezenkívűl B<A>, B<B>, és B<C> a B<helybeni> bejegyzésekhez. Egy \"\n\"inittab fájlbejegyzésnek a következő formátumúnak kell lennie:\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"I<azon.>:I<futásszint>:I<tevékenység>:I<processz>\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"A `#'-el kezdödő sorok mellőzésre kerülnek.\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<id>\"\n\n#. type: Plain text\n#: ../inittab.5:48\n#, fuzzy\n#| msgid \"\"\n#| \"is a unique sequence of 1-4 characters which identifies an entry in \"\n#| \"B<inittab> (for versions of sysvinit compiled with libraries E<lt> 5.2.18 \"\n#| \"or a.out libraries the limit is 2 characters).\"\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\"Egyedi, 1-4 elembol allo karakterlanc, ami azonosítja a bejegyzést az \"\n\"inittabban (azon sysvinit verziók esetében amelyek fordításához tartozó \"\n\"library E<lt> 5.2.18 , vagy még az a.out-os rendszerhez készűlt, a korlát 2 \"\n\"karakter).\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\n#, fuzzy\n#| msgid \"\"\n#| \"Note: For gettys or other login processes, the I<id> field should be the \"\n#| \"tty suffix of the corresponding tty, e.g.\\\\& B<1> for B<tty1>.  \"\n#| \"Otherwise, the login accounting might not work correctly.\"\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\"Megjegyzés: Getty vagy másmilyen login processesknél az I<azon> mező a tty \"\n\"megfelelő tty rangjának kell lennie, például\\\\& B<1> a B<tty1> helyett. \"\n\"Másképpen a bejelentkezési nyilvántartás helytelenűl működhet.\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"I<futásszintek>\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"Leirják, hogy melyik futási szinteken jön létre az adott tevékenység.\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"I<tevékenység>\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"leírja, hogy milyen tevékenység jöjjön létre.\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"I<process>\"\n\n#. type: Plain text\n#: ../inittab.5:70\n#, fuzzy\n#| msgid \"\"\n#| \"specifies the process to be executed.  If the process field starts with a \"\n#| \"`+' character, B<init> will not do utmp and wtmp accounting for that \"\n#| \"process.  This is needed for gettys that insist on doing their own utmp/\"\n#| \"wtmp housekeeping.  This is also a historic bug.\"\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\"Meghatározza, hogy melyik process indítodjon el. Ha a process mező `+' \"\n\"karakterrel kezdödik, akkor az init nem csinál utmp és wtmp nyilvántartást a \"\n\"processnek. Ez akkor szükséges, ha a getty ragaszkodik a saját utmp/wtmp \"\n\"háztartásához. Ez egy történelmi hiba.\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\"A I<futásszintek> mező tőbb értéket is tartalmazhat, a különböző \"\n\"futásszintekhez. Például az B<123> meghatározza, hogy a programnak az 1-es, \"\n\"2-es és 3-as futásszinten kell futnia.  Az B<helybeni> futásszint \"\n\"bejegyzések lehetnek B<A>, B<B>, vagy B<C>. A B<sysinit>, B<boot>, és \"\n\"B<bootwait> futásszint bejegyzések figyelmen kívűl lesznek hagyva.\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\"Ha a rendszer futásszintje megváltozik, az összes olyan program, ami az új \"\n\"futásszinthez nincs bejegyezve, le lesz álítva, előszőr a \\\\s-2SIGTERM\\\\s0, \"\n\"majd a \\\\s-2SIGKILL\\\\s0 jelzéssel.\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"Érvényes tevékenységek a I<tevékenység> mezőhöz:\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"A process újraindul valahányszor megszakítódik (pl:\\\\& getty).\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\"A process akkor indul el, amikor a megadott futási szintre lép, és az \"\n\"B<init> addig vár, amíg a processz fut..\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"A processzt egyszer, a futásszintre lépéskor indítja el.\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\"A process a rendszer újrainditása közben indul el. Ilyenkor a I<futásszint> \"\n\"mező tartalma nem érdekes.\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"A processzt a rendszer indulása közben indítja el, az B<init> megvárja míg \"\n\"lefut (például:\\\\& /etc/rc). A I<futásszint> mező mellőzésre kerül.\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"Semmit sem csinál.\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\"Az B<ondemand> (helybeni) futásszinttel megjelölt process elindul, \"\n\"valahányszor a megadott helybeni futásszint meghivódik.  Viszont nem \"\n\"következik be futásszint csere(B<helybeni> futási szintek az `a', a `b' és a \"\n\"`c').\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\"Az B<initdefault> bejegyzés megadja, hogy melyik futási szintre lépünk be a \"\n\"rendszer újraindítása után. Ha ilyent nem adtunk meg, akkor az B<init> a \"\n\"konzolról kér be egy futásszintet. A I<processz> mező ilyenkor figyelmen \"\n\"kívűl hagyódik.\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"A process a rendszer újraindítása alatt hajtódik végre, mégpedig minden \"\n\"B<boot> és B<bootwait> bejegyzés elött. A I<futásszint> mező tartalma \"\n\"lényegtelen.\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\n#, fuzzy\n#| msgid \"\"\n#| \"The process will be executed when the power goes down. Init is usually \"\n#| \"informed about this by a process talking to a UPS connected to the \"\n#| \"computer.  B<Init> will wait for the process to finish before continuing.\"\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\"A processz akkor lesz végrehajtva, ha megszakad az áramszolgáltatás. Az init \"\n\"erről általában egy olyan processztől értesűl, ami egy UPS-sel (szünetmentes \"\n\"áramforrás) komunikál. Az B<init> ilyenkor megvárja, hogy a processz \"\n\"befelyezödjön mielött továbbmenne.\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\"Ugyanaz, mint a B<powerwait>, kivéve, hogy az B<init> ilyenkor nem várja meg \"\n\"a processz befejeződését.\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\"Ez a processz azonnal végre lesz hajtva, amint az B<init> arról értesűl, \"\n\"hogy az áram visszatért.\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\"Ez a processz akkor lesz vegrehajtva, ha azt közlik az init-el, hogy a külső \"\n\"UPS elemei majdnem teljesen üresek, és az áramszolgáltatás megszünt \"\n\"(feltételezi, hogy a külső UPS és az ellenőrző program képes ezt az \"\n\"állapotot érzékelni).\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\n#, fuzzy\n#| msgid \"\"\n#| \"The process will be executed when B<init> receives the SIGINT signal.  \"\n#| \"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n#| \"DEL> key combination. Typically one wants to execute some sort of \"\n#| \"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\"A processz akkor lesz végrehajtva, ha az B<init> egy SIGINT szignált kap. Ez \"\n\"azt jelenti, hogy valaki a rendszer konzolján lenyomta a B<CTRL-ALT-DEL> \"\n\"billentyű kombinációt. Általában ez azt jelenti, hogy valaki valamiféle \"\n\"B<shutdown>-t akar végrehajtani: vagy egyfelhasználós szintre akar eljutni, \"\n\"vagy pedig újra akarja indítani a gépet.\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\"A process akkor lesz végrehajtva, ha az B<init> egy szignált kap a \"\n\"billentyűzet kezelötöl, ami azt jelzi, hogy egy speciális billentyű \"\n\"kombináció lett lenyomva a konzol billentyűzetén.\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\"Ennek a funkciónak a leírása még nem teljes; további dokumentációt a kbd-x.\"\n\"xx csomagokban lehet találni (a legújabb a kbd-0.94 csomag volt a \"\n\"dokumentácó írása idején). Valószínüleg néhány billentyűzet kombinációt akar \"\n\"feltérképezni a \\\"KeyboardSignal\\\" akcióhoz. Például, hogy az Alt-\"\n\"felfelényíl kombinációt e célból feltérképezze, használja a következöt a \"\n\"keymaps fájljában:\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"alt keycode 103 = KeyboardSignal\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"Ez egy példa az inittab-ra, ami emlékeztet a régi Linux-os inittab-ra:\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\"# inittab linux-ra\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\n\n#. type: Plain text\n#: ../inittab.5:222\n#, fuzzy\n#| msgid \"\"\n#| \"This inittab file executes B</etc/rc> during boot and starts gettys on \"\n#| \"tty1-tty4.\"\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\"Ez az inittab végrehajtja az B</etc/rc> paracsfájlt a boot-folyamat alatt és \"\n\"elindítja a gettys-t a tty1-tty4-en.\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\"Egy bonyolultabb inittab különbözö futási szintekkel (Lásd a kommenteket a \"\n\"fájl-on belül):\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\"# Szint amin fussunk\\n\"\n\"id:2:initdefault:\\n\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \"# System initialization before anything else.\\n\"\n#| \"si::sysinit:/etc/rc.d/bcheckrc\\n\"\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\"# Rendszer inicializáció minden más elött.\\n\"\n\"si::sysinit:/etc/rc.d/bcheckrc\\n\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\"# Mit csináljunk a \\\"3 ujjas tisztelgés\\\"-nél.\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \"# Runlevel 2&3: getty on console, level 3 also getty on modem port.\\n\"\n#| \"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n#| \"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n#| \"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n#| \"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n#| \"S2:3:respawn:/sbin/uugetty ttyS2 M19200\\n\"\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\"# Futásszint 2&3: getty konzolon, 3-as szinten a modemhez is.\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S2:3:respawn:/sbin/uugetty ttyS2 M19200\\n\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\n#, fuzzy\n#| msgid \"\"\n#| \"B<Init> was written by Miquel van Smoorenburg (miquels@cistron.nl).  This \"\n#| \"manual page was written by Sebastian Lederer (lederer@francium.informatik.\"\n#| \"uni-bonn.de) and modified by Michael Haardt (u31b3hs@pool.informatik.rwth-\"\n#| \"aachen.de).\"\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"A B<init>-et Miquel van Smoorenburg (miquels@cistron.nl) , a hozzávaló \"\n\"kézikönyvlapot pedig Sebastian Lederer (lederer@francium.informatik.uni-bonn.\"\n\"de) írta és Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de) \"\n\"módosította.\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../killall5.8:35\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-f>, B<--file> I<fájl>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../last.1:20\n#, fuzzy, no-wrap\n#| msgid \"LAST\"\nmsgid \"LAST,\"\nmsgstr \"LAST\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\n#, fuzzy\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"\"\n\"last, lastb - a legutóbbi belépések listázása terminál vagy felhasználó \"\n\"alapján\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\n#, fuzzy\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\"A B<last> a B<wtmp> bejegyzéseit dolgozza fel, amely tartalmazza az összes \"\n\"információt a be- és kilépésekről, valamint a felhasznált terminálokról. \"\n\"Opcionálisan megadhatjuk a felhasználó, vagy a terminál nevét is. Ha több \"\n\"opciót adunk meg, akkor minden olyan információt megkapunk, amelyik legalább \"\n\"az egyik opcióhoz tartozik: például a ``B<last root console>'' parancs \"\n\"kilistázza a root felhasználó összes belépését és a konzolon történt összes \"\n\"többi belépést is. A B<last> időben visszafelé rendezett sorrendben listázza \"\n\"ki a belépés idejét, a kapcsolat hosszát és a felhasznált terminál nevét, \"\n\"megmutatja a folyamatban lévő kapcsolatokat és a rendszerleállítás miatt \"\n\"félbeszakadt kapcsolatokat is.\"\n\n#. type: Plain text\n#: ../last.1:61\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:65\n#, fuzzy\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"A B<reboot> ál-felhasználó jelzi a rendszer újraindításának idejét.\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f>, B<--file> I<fájl>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, fuzzy, no-wrap\n#| msgid \"B<->I<number>\"\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<szám>\"\n\n#. type: Plain text\n#: ../last.1:75\n#, fuzzy\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"A parancs kimenetét korlátozza: legfeljebb ennyi sor jelenhet meg.\"\n\n#. type: IP\n#: ../last.1:75\n#, fuzzy, no-wrap\n#| msgid \"B<->I<number>\"\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<->I<szám>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:87\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\n#, fuzzy\n#| msgid \"B<init>(8), B<telinit>(8)\"\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Felhasználói parancsok\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\n#, fuzzy\n#| msgid \"\"\n#| \"If no arguments are given, B<mesg> shows the current message status on \"\n#| \"standard error output.\"\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Ha a B<mesg>-et paraméter nélkül indítjuk, akkor az épp aktuális állapotát \"\n\"kapjuk meg a szabványos hibakimeneten.\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\n#, fuzzy\n#| msgid \"B<login>(1), B<talk>(1), B<write>(1), B<wall>(1), B<xterm>(1)\"\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<login>(1), B<talk>(1), B<write>(1), B<wall>(1), B<xterm>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:36\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\n#, fuzzy\n#| msgid \"/var/log/btmp\"\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/btmp\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\n#, fuzzy\n#| msgid \"B<boot>\"\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<boot>\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:24\n#, fuzzy\n#| msgid \"I<runlevels>\"\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"I<futásszintek>\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\n#, fuzzy\n#| msgid \"B<init>(8), B<telinit>(8)\"\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\nmsgid \"When to shutdown.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\n#, fuzzy\n#| msgid \"Messages are not allowed.\"\nmsgid \"Message to send to all users.\"\nmsgstr \"Üzenetek nem engedélyezve.\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, no-wrap\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:90\n#, fuzzy\n#| msgid \"B<init>(8), B<telinit>(8)\"\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\n#, fuzzy\n#| msgid \"B<mesg>(1), B<talk>(1), B<write>(1), B<shutdown>(8)\"\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<mesg>(1), B<talk>(1), B<write>(1), B<shutdown>(8)\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:22\n#, fuzzy\n#| msgid \"wall - write a message to all users\"\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - üzenetküldés valamennyi felhasználó termináljára\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, fuzzy, no-wrap\n#~| msgid \"LAST, LASTB\"\n#~ msgid \"LAST,LASTB\"\n#~ msgstr \"LAST, LASTB\"\n\n#, no-wrap\n#~ msgid \"2021-06-02\"\n#~ msgstr \"2021. június 2\"\n\n#, no-wrap\n#~ msgid \"util-linux 2.37.2\"\n#~ msgstr \"util-linux 2.37.2\"\n\n#~ msgid \"B<last> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<last> [opciók] [I<fájlnév>...] [I<tty>...]\"\n\n#~ msgid \"B<lastb> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<lastb> [opciók] [I<fájlnév>...] [I<tty>...]\"\n\n#, fuzzy\n#~ msgid \"\"\n#~ \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#~ \"designated by the B<-f> option) and displays a list of all users logged \"\n#~ \"in (and out) since that file was created. One or more I<usernames> and/or \"\n#~ \"I<ttys> can be given, in which case B<last> will show only the entries \"\n#~ \"matching those arguments. Names of I<ttys> can be abbreviated, thus \"\n#~ \"B<last 0> is the same as B<last tty0>.\"\n#~ msgstr \"\"\n#~ \"A B<last> a B<wtmp> bejegyzéseit dolgozza fel, amely tartalmazza az \"\n#~ \"összes információt a be- és kilépésekről, valamint a felhasznált \"\n#~ \"terminálokról. Opcionálisan megadhatjuk a felhasználó, vagy a terminál \"\n#~ \"nevét is. Ha több opciót adunk meg, akkor minden olyan információt \"\n#~ \"megkapunk, amelyik legalább az egyik opcióhoz tartozik: például a \"\n#~ \"``B<last root console>'' parancs kilistázza a root felhasználó összes \"\n#~ \"belépését és a konzolon történt összes többi belépést is. A B<last> \"\n#~ \"időben visszafelé rendezett sorrendben listázza ki a belépés idejét, a \"\n#~ \"kapcsolat hosszát és a felhasznált terminál nevét, megmutatja a \"\n#~ \"folyamatban lévő kapcsolatokat és a rendszerleállítás miatt félbeszakadt \"\n#~ \"kapcsolatokat is.\"\n\n#, fuzzy\n#~ msgid \"\"\n#~ \"The pseudo user B<reboot> logs in each time the system is rebooted. Thus \"\n#~ \"B<last reboot> will show a log of all the reboots since the log file was \"\n#~ \"created.\"\n#~ msgstr \"A B<reboot> ál-felhasználó jelzi a rendszer újraindításának idejét.\"\n\n#~ msgid \"B<-a>, B<--hostlast>\"\n#~ msgstr \"B<-a>, B<--hostlast>\"\n\n#~ msgid \"B<-d>, B<--dns>\"\n#~ msgstr \"B<-d>, B<--dns>\"\n\n#~ msgid \"B<-F>, B<--fulltimes>\"\n#~ msgstr \"B<-F>, B<--fulltimes>\"\n\n#~ msgid \"B<-i>, B<--ip>\"\n#~ msgstr \"B<-i>, B<--ip>\"\n\n#~ msgid \"B<->I<number>; B<-n>, B<--limit> I<number>\"\n#~ msgstr \"B<->I<szám>; B<-n>, B<--limit> I<szám>\"\n\n#~ msgid \"B<-p>, B<--present> I<time>\"\n#~ msgstr \"B<-p>, B<--present> I<idő>\"\n\n#~ msgid \"B<-R>, B<--nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#~ msgid \"B<-s>, B<--since> I<time>\"\n#~ msgstr \"B<-s>, B<--since> I<idő>\"\n\n#~ msgid \"B<-t>, B<--until> I<time>\"\n#~ msgstr \"B<-t>, B<--until> I<idő>\"\n\n#~ msgid \"B<--time-format> I<format>\"\n#~ msgstr \"B<--time-format> I<formátum>\"\n\n#~ msgid \"B<-w>, B<--fullnames>\"\n#~ msgstr \"B<-w>, B<--fullnames>\"\n\n#~ msgid \"B<-x>, B<--system>\"\n#~ msgstr \"B<-x>, B<--system>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"FORMATS\"\n#~ msgid \"TIME FORMATS\"\n#~ msgstr \"FORMÁTUMOK\"\n\n#, no-wrap\n#~ msgid \".sp\\n\"\n#~ msgstr \".sp\\n\"\n\n#~ msgid \"I</var/log/wtmp>, I</var/log/btmp>\"\n#~ msgstr \"I</var/log/wtmp>, I</var/log/btmp>\"\n\n#, no-wrap\n#~ msgid \"AUTHORS\"\n#~ msgstr \"SZERZŐI\"\n\n#~ msgid \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n#~ msgstr \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"REPORTING BUGS\"\n#~ msgstr \"HIBÁK JELENTÉSE\"\n\n#, no-wrap\n#~ msgid \"AVAILABILITY\"\n#~ msgstr \"ELÉRHETŐSÉG\"\n\n#, no-wrap\n#~ msgid \"October 2013\"\n#~ msgstr \"2013 október\"\n\n#, no-wrap\n#~ msgid \"util-linux\"\n#~ msgstr \"util-linux\"\n\n#, no-wrap\n#~ msgid \"B<-a>,B< --hostlast>\"\n#~ msgstr \"B<-a>,B< --hostlast>\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --dns>\"\n#~ msgstr \"B<-d>,B< --dns>\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --file >I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<fájl>\"\n\n#, no-wrap\n#~ msgid \"B<-F>,B< --fulltimes>\"\n#~ msgstr \"B<-F>,B< --fulltimes>\"\n\n#, no-wrap\n#~ msgid \"B<-i>,B< --ip>\"\n#~ msgstr \"B<-i>,B< --ip>\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgstr \"B<-n>,B< --limit >I<szám>\"\n\n#, no-wrap\n#~ msgid \"B<-p>,B< --present >I<time>\"\n#~ msgstr \"B<-p>,B< --present >I<idő>\"\n\n#, no-wrap\n#~ msgid \"B<-R>,B< --nohostname>\"\n#~ msgstr \"B<-R>,B< --nohostname>\"\n\n#, no-wrap\n#~ msgid \"B<-s>,B< --since >I<time>\"\n#~ msgstr \"B<-s>,B< --since >I<idő>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --until >I<time>\"\n#~ msgstr \"B<-t>,B< --until >I<idő>\"\n\n#, no-wrap\n#~ msgid \"B<--time-format>I< format>\"\n#~ msgstr \"B<--time-format>I< formátum>\"\n\n#, no-wrap\n#~ msgid \"B<-w>,B< --fullnames>\"\n#~ msgstr \"B<-w>,B< --fullnames>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --system>\"\n#~ msgstr \"B<-x>,B< --system>\"\n\n#~ msgid \"mesg - display (or do not display) messages from other users\"\n#~ msgstr \"\"\n#~ \"mesg - megjeleníti (vagy nem jeleníti meg) a más felhasználóktól érkező \"\n#~ \"üzeneteket.\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output. If \"\n#~ \"write access is allowed, then programs such as B<talk>(1) and B<write>(1) \"\n#~ \"may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"A B<mesg> egy felhasználók által meghívható segédprogram, amellyel a \"\n#~ \"termináluk szabványos hibakimenetére való a mások általi írás \"\n#~ \"jogosultságát állíthatják be. Ha az írás engedélyezett, akkor az olyan \"\n#~ \"programok, mint a B<talk>(1) és a B<write>(1), üzeneteket jeleníthetnek \"\n#~ \"meg a képernyőn.\"\n\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default. However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell. To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"A \\\"hagyomány\\\" szerint az alapbeállításban az írási jogosultság \"\n#~ \"engedélyezve van. Ám a felhasználók felfedezték a biztonsági rések számos \"\n#~ \"változatát, és kialakult egy szokás, mely szerint alapból megvonják az \"\n#~ \"írási jogot, de legalább az elsődleges login shell-ét. Ahhoz, hogy \"\n#~ \"biztosan tudd, hogy a tty-jeid neked megfelelően vannak beállítva, \"\n#~ \"ajánlatos a B<mesg> -et elindítani a login scriptedből.\"\n\n#, no-wrap\n#~ msgid \"ARGUMENTS\"\n#~ msgstr \"ÉRTÉKEK\"\n\n#~ msgid \"Disallow messages.\"\n#~ msgstr \"Letiltja az üzeneteket.\"\n\n#~ msgid \"Allow messages to be displayed.\"\n#~ msgstr \"Az üzenetek megjelenítésének engedélyezése.\"\n\n#~ msgid \"B<-v>, B<--verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#~ msgid \"Explain what is being done.\"\n#~ msgstr \"Elmagyarázza, mi történik.\"\n\n#~ msgid \"Display version information and exit.\"\n#~ msgstr \"Verzióinformációk megjelenítése és kilépés.\"\n\n#~ msgid \"B<-h>, B<--help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#, fuzzy\n#~ msgid \"Display help text and exit.\"\n#~ msgstr \"ezen súgó megjelenítése és kilépés\"\n\n#~ msgid \"The B<mesg> utility exits with one of the following values:\"\n#~ msgstr \"A B<mesg> az alábbi értékek valamelyikével lép ki:\"\n\n#~ msgid \"Messages are allowed.\"\n#~ msgstr \"Üzenetek engedélyezve.\"\n\n#, no-wrap\n#~ msgid \"B<E<gt>1>\"\n#~ msgstr \"B<E<gt>1>\"\n\n#~ msgid \"An error has occurred.\"\n#~ msgstr \"Hiba történt.\"\n\n#~ msgid \"I</dev/[pt]ty[pq]?>\"\n#~ msgstr \"I</dev/[pt]ty[pq]?>\"\n\n#, no-wrap\n#~ msgid \"HISTORY\"\n#~ msgstr \"TÖRTÉNET\"\n\n#~ msgid \"A B<mesg> command appeared in Version 6 AT&T UNIX.\"\n#~ msgstr \"A B<mesg> parancs az AT&T UNIX 6-os változatában jelent meg.\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output.  If \"\n#~ \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~ \"B<write>(1)  may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"A B<mesg> egy felhasználók által meghívható segédprogram, amellyel a \"\n#~ \"termináluk szabványos hibakimenetére való a mások általi írás \"\n#~ \"jogosultságát állíthatják be. Ha az írás engedélyezett, akkor az olyan \"\n#~ \"programok, mint a B<talk>(1) és a B<write>(1), üzeneteket jeleníthetnek \"\n#~ \"meg a képernyőn.\"\n\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default.  However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell.  To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"A \\\"hagyomány\\\" szerint az alapbeállításban az írási jogosultság \"\n#~ \"engedélyezve van. Ám a felhasználók felfedezték a biztonsági rések számos \"\n#~ \"változatát, és kialakult egy szokás, mely szerint alapból megvonják az \"\n#~ \"írási jogot, de legalább az elsődleges login shell-ét. Ahhoz, hogy \"\n#~ \"biztosan tudd, hogy a tty-jeid neked megfelelően vannak beállítva, \"\n#~ \"ajánlatos a B<mesg> -et elindítani a login scriptedből.\"\n\n#, no-wrap\n#~ msgid \"B<-v>,B< --verbose>\"\n#~ msgstr \"B<-v>,B< --verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-h>,B< --help>\"\n#~ msgstr \"B<-h>,B< --help>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 0>\"\n#~ msgstr \"B<\\\\ 0>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 1>\"\n#~ msgstr \"B<\\\\ 1>\"\n\n#~ msgid \"B<-n>, B<--nobanner>\"\n#~ msgstr \"B<-n>, B<--nobanner>\"\n\n#, fuzzy\n#~| msgid \"B<-f>, B<--file> I<file>\"\n#~ msgid \"B<-t>, B<--timeout> I<timeout>\"\n#~ msgstr \"B<-f>, B<--file> I<fájl>\"\n\n#, fuzzy\n#~| msgid \"B<-G>, B<--no-group>\"\n#~ msgid \"B<-g>, B<--group> I<group>\"\n#~ msgstr \"B<-G>, B<--no-group>\"\n\n#, no-wrap\n#~ msgid \"August 2013\"\n#~ msgstr \"2013 augusztus\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --nobanner>\"\n#~ msgstr \"B<-n>,B< --nobanner>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"B<-f>,B< --file >I<file>\"\n#~ msgid \"B<-t>,B< --timeout >I<timeout>\"\n#~ msgstr \"B<-f>,B< --file >I<fájl>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"B<-G>, B<--no-group>\"\n#~ msgid \"B<-g>,B< --group >I<group>\"\n#~ msgstr \"B<-G>, B<--no-group>\"\n"
  },
  {
    "path": "man/po/id.po",
    "content": "# Indonesian translation of the sysvinit man pages\n# I Made Wiryana <mwiryana@gunadarma.ac.id>, 1999.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-01 15:59-0300\\n\"\n\"PO-Revision-Date: 1999-03-03 16:34+0100\\n\"\n\"Last-Translator: I Made Wiryana <mwiryana@gunadarma.ac.id>\\n\"\n\"Language-Team: Indonesian <>\\n\"\n\"Language: id\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21 Juli 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, fuzzy, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NAMA\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"RINGKASAN\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\n#, fuzzy\n#| msgid \"\"\n#| \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"PENJELASAN\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"PILIHAN\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, no-wrap\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, no-wrap\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"CATATAN\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"PENGARANG\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"LIHAT JUGA\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"Mei 2006\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"STATUS KELUAR\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"CONTOH\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"6 November 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"halt, reboot, poweroff - menghentikan sistem\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29 Juli 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [ B<-t> I<DETIK> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> atau B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:172\n#, fuzzy, no-wrap\n#| msgid \"B<a>,B<b>,B<c>\"\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"B<a>,B<b>,B<c>\"\n\n#. type: Plain text\n#: ../init.8:175\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> atau B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> atau B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> atau B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s, S, single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1-5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b, emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a, auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z >I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"BERKAS\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"13 April 2018\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10 Juli 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript.\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4 Desember 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<id>\"\n\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:70\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4 November 2003\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../killall5.8:35\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--force>\"\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-f>, B<--force>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"31 Juli 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:61\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<berkas>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<nomor>\"\n\n#. type: Plain text\n#: ../last.1:75\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<-n> I<nomor>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"26 Februari 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Penggunaan halaman buku panduan\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"MOUNTPOINT\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"15 Maret 2004\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1 September 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:36\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"12 November 2018\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<berkas\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"27 Mei 1997\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:24\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"12 November 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"Memboot ulang (reboot) setelah menghentikan sistem (shutdown).\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\n#, fuzzy\n#| msgid \"shutdown\"\nmsgid \"When to shutdown.\"\nmsgstr \"shutdown\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\nmsgid \"Message to send to all users.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"B<shutdown: no authorized users logged in>\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"17 Januari 2006\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, no-wrap\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"8 Februari 2010\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"15 April 2003\"\n\n#. type: Plain text\n#: ../wall.1:22\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, no-wrap\n#~ msgid \"B<a>,\"\n#~ msgstr \"B<a>,\"\n\n#~ msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#, no-wrap\n#~ msgid \"fstab-decode\"\n#~ msgstr \"fstab-decode\"\n\n#~ msgid \"Jesse Smith E<lt>jsmith@resonatingmedia.comE<gt>\"\n#~ msgstr \"Jesse Smith E<lt>jsmith@resonatingmedia.comE<gt>\"\n\n#~ msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n\n#, no-wrap\n#~ msgid \"@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@\"\n#~ msgstr \"@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@\"\n\n#~ msgid \"Theodore Ts'o (tytso@mit.edu)\"\n#~ msgstr \"Theodore Ts'o (tytso@mit.edu)\"\n\n#~ msgid \"Miquel van Smoorenburg (miquels@cistron.nl)\"\n#~ msgstr \"Miquel van Smoorenburg (miquels@cistron.nl)\"\n\n#, no-wrap\n#~ msgid \"-s\"\n#~ msgstr \"-s\"\n\n#, no-wrap\n#~ msgid \"-c\"\n#~ msgstr \"-c\"\n\n#, no-wrap\n#~ msgid \"-n\"\n#~ msgstr \"-n\"\n\n#, no-wrap\n#~ msgid \"-q\"\n#~ msgstr \"-q\"\n\n#, no-wrap\n#~ msgid \"-x\"\n#~ msgstr \"-x\"\n\n#, no-wrap\n#~ msgid \"-z\"\n#~ msgstr \"-z\"\n\n#~ msgid \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n\n#, no-wrap\n#~ msgid \"systemd 249\"\n#~ msgstr \"systemd 249\"\n\n#, no-wrap\n#~ msgid \"halt\"\n#~ msgstr \"halt\"\n\n#~ msgid \"B<halt> [OPTIONS...]\"\n#~ msgstr \"B<halt> [PILIHAN...]\"\n\n#~ msgid \"B<poweroff> [OPTIONS...]\"\n#~ msgstr \"B<poweroff> [PILIHAN...]\"\n\n#~ msgid \"B<reboot> [OPTIONS...]\"\n#~ msgstr \"B<reboot> [PILIHAN...]\"\n\n#~ msgid \"B<--help>\"\n#~ msgstr \"B<--help>\"\n\n#, fuzzy\n#~ msgid \"Print a short help text and exit\\\\&.\"\n#~ msgstr \"Tampilkan sebuah pesan bantuan dan keluar.\"\n\n#~ msgid \"B<--halt>\"\n#~ msgstr \"B<--halt>\"\n\n#~ msgid \"B<-p>, B<--poweroff>\"\n#~ msgstr \"B<-p>, B<--poweroff>\"\n\n#~ msgid \"B<-w>, B<--wtmp-only>\"\n#~ msgstr \"B<-w>, B<--wtmp-only>\"\n\n#~ msgid \"B<-d>, B<--no-wtmp>\"\n#~ msgstr \"B<-d>, B<--no-wtmp>\"\n\n#~ msgid \"B<-n>, B<--no-sync>\"\n#~ msgstr \"B<-n>, B<--no-sync>\"\n\n#~ msgid \"B<--no-wall>\"\n#~ msgstr \"B<--no-wall>\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n\n#, fuzzy, no-wrap\n#~ msgid \"systemd 250\"\n#~ msgstr \"systemd 249\"\n\n#, fuzzy\n#~ msgid \"shutdown - Halt, power-off or reboot the machine\"\n#~ msgstr \"shutdown - menghentikan sistem\"\n\n#~ msgid \"B<-H>, B<--halt>\"\n#~ msgstr \"B<-H>, B<--halt>\"\n\n#~ msgid \"B<-P>, B<--poweroff>\"\n#~ msgstr \"B<-P>, B<--poweroff>\"\n\n#~ msgid \"B<-r>, B<--reboot>\"\n#~ msgstr \"B<-r>, B<--reboot>\"\n"
  },
  {
    "path": "man/po/pl.po",
    "content": "# Polish translation of the sysvinit man pages.\n# Marcin Garski <mgarski@post.pl>, 1997.\n# Paweł Wilk <siefca@pl.qmail.org>, 1998.\n# Przemek Borys <pborys@dione.ids.pl>, 1998-1999.\n# Wojtek Kotwica <wkotwica@post.pl>, 1999-2000.\n# Robert Luberda <robert@debian.org>, 2005, 2017.\n# Szymon Lamkiewicz <s.lam@o2.pl>, 2020.\n# Michał Kułach <michal.kulach@gmail.com>, 2012-2013, 2016, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit-man\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-01 15:59-0300\\n\"\n\"PO-Revision-Date: 2021-03-17 19:36+0100\\n\"\n\"Last-Translator: Michał Kułach <michal.kulach@gmail.com>\\n\"\n\"Language-Team: Polish <manpages-pl-list@lists.sourceforge.net>\\n\"\n\"Language: pl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21 lipca 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, fuzzy, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"B<sysinit>\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"Podręcznik administratora systemu Linux\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NAZWA\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"SKŁADNIA\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\n#, fuzzy\n#| msgid \"\"\n#| \"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< \"\n#| \"0123456Ss >]\"\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [B< -z> I<xxx>] [B< 0123456Ss >]\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"OPIS\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"OPCJE\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-f>, B<--file> I<plik>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, fuzzy, no-wrap\n#| msgid \"B<-f>, B<--file> I<file>\"\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-f>, B<--file> I<plik>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"UWAGI\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"AUTOR\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"ZOBACZ TAKŻE\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"KOD ZAKOŃCZENIA\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"PRZYKŁADY\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] /etc/fstab)>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"6 listopada 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\n#, fuzzy\n#| msgid \"halt, poweroff, reboot - Halt, power-off or reboot the machine\"\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"halt, poweroff, reboot - zatrzymuje, wyłącza lub przeładowuje komputer\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\n#, fuzzy\n#| msgid \"Do not write wtmp shutdown entry\\\\&.\"\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"Nie dokonuje wpisu wtmp\\\\&.\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"DIAGNOSTYKA\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29 lipca 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"init, telinit - sterowanie procesu inicjującego\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [B< -z> I<xxx>] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [B< -t> I<SEKUNDY> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"B</sbin/telinit> [B< -e> I<ZMIENNA>[B<=>I<WARTOŚĆ>] ]\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\"B<Init> jest przodkiem wszystkich procesów. Jego głównym zadaniem jest \"\n\"stworzenie procesów w oparciu o skrypt zapisany w pliku I</etc/inittab> \"\n\"(patrz też B<inittab>(5)). Ten plik zawiera zwykle pozycje, które każą \"\n\"procesowi B<init> pomnażać B<getty> na każdej linii, na które użytkownicy \"\n\"mogą się zalogować. Kontroluje też samodzielne procesy, których istnienie \"\n\"jest konieczne w danym systemie.\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"POZIOMY PRACY\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\"I<Runlevel> (poziom pracy) jest to konfiguracja oprogramowania systemu, \"\n\"która pozwala zaistnieć tylko wytypowanym grupom procesów. Procesy tworzone \"\n\"przez B<init> dla każdego z tych poziomów są zdefiniowane w pliku I</etc/\"\n\"inittab>. B<init> może być w jednym z ośmiu poziomów pracy: B<0\\\\(en6> i \"\n\"B<S> (inaczej B<s>). Poziom pracy jest zmieniany przez uruchomienie \"\n\"B<telinit> przez uprzywilejowanego użytkownika.  B<telinit> wysyła \"\n\"odpowiednie sygnały do B<init>, mówiące, w jaki tryb ma przejść.\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\"Tryby pracy B<S>, B<0>, B<1>, oraz B<6> są zarezerwowane. Tryb S jest \"\n\"używany do zainicjowania systemu, podczas jego rozruchu. Gdy uruchamiany \"\n\"jest tryb pracy S (w czasie rozruchu) lub tryb pracy 1 (przełączanie się z \"\n\"trybu wielu użytkowników), system jest wprowadzany w tryb pracy jednego \"\n\"użytkownika (\\\"single-user mode\\\"), po którym bieżącym poziomem pracy jest \"\n\"S. Tryb 0 jest używany, by zatrzymać system; tryb 6, by przeładować system \"\n\"(reboot).\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\"Po zakończeniu rozruchu w poziomie S, system jest automatycznie wprowadzany \"\n\"w jeden z trybów wielu użytkowników, od 2 do 5, chyba że wystąpił problem, \"\n\"który musi zostać naprawiony przez administratora, w trybie jednego \"\n\"użytkownika. Po przejściu w tryb jednego użytkownika administrator zwykle \"\n\"zajmuje się konserwacją, a następnie przeładowuje system.\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\"Aby uzyskać więcej informacji na ten temat, proszę zapoznać się ze stronami \"\n\"podręcznika B<shutdown>(8) i B<inittab>(5).\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\"Tryby pracy 7-9 również są poprawne, choć niezbyt dobrze udokumentowane. \"\n\"Wynika to z faktu, że \\\"tradycyjne\\\" warianty Uniksa nie używają ich.\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\"Poziomy I<S> i I<s> są w rzeczywistości takie same.  Wewnętrznie są to tylko \"\n\"zastępcze nazwy dla tego samego trybu pracy.\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"ROZRUCH\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\"Po tym jak B<init> jest wywołany w ostatnim kroku sekwencji rozruchowej \"\n\"jądra, szuka pliku I</etc/inittab> w celu znalezienia w nim pola typu \"\n\"B<initdefault> (patrz też B<inittab>(5)). Pole B<initdefault> określa \"\n\"początkowy poziom pracy systemu. Jeśli nie ma tam takiego pola (lub wcale \"\n\"nie istnieje I</etc/inittab>), poziom pracy musi być podany z konsoli \"\n\"systemowej.\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\"Poziom B<S> lub B<s> wprowadza system w tryb jednego użytkownika i nie \"\n\"wymaga pliku I</etc/inittab>.\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\"W trybie jednego użytkownika, wywoływany jest B</sbin/sulogin> na urządzeniu \"\n\"I</dev/console>.\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\"Podczas wchodzenia w tryb jednego użytkownika, proces B<init> inicjuje \"\n\"ustawienia B<stty> konsoli na bezpieczne wartości. Ustawiany jest tryb \"\n\"clocal. Prędkość sprzętu i handshaking nie są zmieniane.\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\"Podczas wchodzenia w tryb wielu użytkowników po raz pierwszy, B<init> \"\n\"wykonuje pozycje B<boot> i B<bootwait>, by pozwolić systemom plików \"\n\"zamontować się zanim użytkownicy będą mogli się zalogować. Potem wykonywane \"\n\"są wszystkie pozycje przypisane danemu poziomowi pracy.\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\"Kiedy nowy proces startuje, B<init> sprawdza najpierw, czy istnieje plik I</\"\n\"etc/initscript>. Jeśli tak, używa tego skryptu by ten proces zacząć.\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\"Za każdym razem, gdy proces potomny się zakończy, B<init> zapamiętuje ten \"\n\"fakt i powód śmierci procesu jest zapisany w I</var/run/utmp> i I</var/log/\"\n\"wtmp>, pod warunkiem, że te pliki istnieją.\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"ZMIENIANIE TRYBÓW PRACY\"\n\n#. type: Plain text\n#: ../init.8:132\n#, fuzzy\n#| msgid \"\"\n#| \"After it has spawned all of the processes specified, B<init> waits for \"\n#| \"one of its descendant processes to die, a powerfail signal, or until it \"\n#| \"is signaled by B<telinit> to change the system's runlevel.  When one of \"\n#| \"the above three conditions occurs, it re-examines the B</etc/inittab> \"\n#| \"file.  New entries can be added to this file at any time.  However, \"\n#| \"B<init> still waits for one of the above three conditions to occur.  To \"\n#| \"provide for an instantaneous response, the B<telinit Q> or B<q> command \"\n#| \"can wake up B<init> to re-examine the B</etc/inittab> file.\"\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\"Po tym jak \\\"namnożone\\\" zostaną wszystkie wyszczególnione procesy, B<init> \"\n\"czeka na śmierć każdego swojego procesu potomnego, sygnał braku energii lub \"\n\"zasygnalizowanie przez B<telinit> zmiany poziomu działania systemu.  Gdy \"\n\"wystąpi jeden spośród tych trzech warunków, ponownie sprawdzany jest plik B</\"\n\"etc/inittab>, ponieważ nowe pola mogą być do niego dodane w każdej chwili. \"\n\"Jednakowoż, B<init> wciąż oczekuje na wystąpienie jednego z tych trzech \"\n\"warunków. By przygotować się na natychmiastową odpowiedź, B<telinit Q> albo \"\n\"użyta komenda B<q> może obudzić proces B<init>, by jeszcze raz przeczytał \"\n\"plik B</etc/inittab>.\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\"Jeśli B<init> nie jest w trybie jednego użytkownika i odbiera sygnał zaniku \"\n\"energii (SIGPWR), czyta plik I</etc/powerstatus>. Następnie uruchamia \"\n\"polecenie zależne od zawartości tego pliku:\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"F(AIL)\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\"Zawodzi zasilanie, UPS dostarcza mocy. Wykonuje wpisy B<powerwait> i \"\n\"B<powerfail>.\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"O(K)\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"Zasilanie powróciło, uruchamia wpisy B<powerokwait>.\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"L(OW)\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\"Zasilanie zawodzi, a UPS-owi wyczerpuje się bateria. Wykonuje wpisy \"\n\"B<powerfailnow>.\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\"Jeżeli plik I</etc/powerstatus> nie istnieje lub zawiera cokolwiek innego \"\n\"niż jedną z liter B<F>, B<O> lub B<L>, B<init> zachowa się tak, jakby \"\n\"przeczytał B<F>.\"\n\n#. type: Plain text\n#: ../init.8:153\n#, fuzzy\n#| msgid \"\"\n#| \"Usage of B<SIGPWR> and B</etc/powerstatus> is discouraged. Someone \"\n#| \"wanting to interact with B<init> should use the B</run/initctl> control \"\n#| \"channel - see the source code of the B<sysvinit> package for more \"\n#| \"documentation about this.\"\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\"Używanie B<SIGPWR> i B</etc/powerstatus> nie jest zalecane. Jeżeli ktoś chce \"\n\"współdziałać z B<init>em, powinien użyć kanału kontroli B</run/initctl> - \"\n\"proszę przeczytać kod źródłowy pakietu B<sysvinit> po więcej dokumentacji \"\n\"dotyczącej tego kanału.\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\"Gdy B<init> jest proszony o zmianę poziomu działania, wysyła sygnał \"\n\"ostrzegawczy B<SIGTERM> do wszystkich procesów, które nie są zdefiniowane w \"\n\"nowym poziomie pracy. Potem czeka 5 sekund zanim \\\"na siłę\\\" zakończy te \"\n\"procesy poprzez sygnał B<SIGKILL>.  Zauważ, że B<init> zakłada, że wszystkie \"\n\"te procesy (i ich potomki)  pozostają w tej samej grupie procesów, którą \"\n\"B<init> oryginalnie im utworzył. Jeżeli jakikolwiek proces zmienił swą \"\n\"przynależność do grupy procesów to nie odbierze tych sygnałów. Tego typu \"\n\"procesy muszą być kończone osobno (np. demony wszelakie - przyp. tłum.).\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\"B</sbin/telinit> jest symbolicznym dowiązaniem do B</sbin/init>. Pobiera on \"\n\"jednoznakowy argument i sygnały B<init>, by podjął stosowne działanie.  \"\n\"Poniższe argumenty można stosować jako rozkazy dla B<telinit>:\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> lub B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"mówią procesowi B<init> by przełączył w odpowiedni poziom działania.\"\n\n#. type: IP\n#: ../init.8:172\n#, fuzzy, no-wrap\n#| msgid \"B<a>,B<b>,B<c>\"\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"B<a>,B<b>,B<c>\"\n\n#. type: Plain text\n#: ../init.8:175\n#, fuzzy\n#| msgid \"\"\n#| \"tell B<init> to process only those B</etc/inittab> file entries having \"\n#| \"runlevel B<a>,B<b> or B<c>.\"\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\"każą procesowi B<init> by przetwarzał tylko te pola pliku B</etc/inittab>, \"\n\"które odnoszą się do poziomu pracy B<a>,B<b> lub B<c>.\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> lub B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"każą procesowi B<init> jeszcze raz przeczytać plik I</etc/inittab>.\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> lub B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"mówią żeby B<init> przełączył w tryb jednego użytkownika.\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> lub B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\"każą procesowi B<init> przeładować się (zachowując obecny stan). Nie \"\n\"występuje ponowne odczytywanie pliku I</etc/inittab>. Poziom pracy powinien \"\n\"być ustawiony na B<Ss0123456>, w przeciwnym wypadku żądanie może być \"\n\"\\\"delikatnie\\\" zignorowane.\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\"B<telinit> może także powiedzieć procesowi B<init>, jak długo powinien on \"\n\"czekać między wysyłaniem sygnałów B<SIGTERM> i B<SIGKILL>. Domyślną \"\n\"wartością jest 3 sekund, ale może być ona zmieniona za pomocą opcji B<-t>.\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\"B<telinit -e> mówi procesowi B<init>, aby zmienił środowisko procesów, które \"\n\"mnoży. Argumenty do B<-e> mogą mieć postać I<ZMIENNA>=I<WARTOŚĆ>, która \"\n\"ustawia zmiennej I<ZMIENNA> wartość I<WARTOŚĆ> lub postać I<ZMIENNA> (bez \"\n\"znaku równości), która usuwa zmienną I<ZMIENNA>.\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\"B<telinit> może być wywoływany tylko przez użytkowników uprzywilejowanych.\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\"Wywołany B<init> sprawdza czy jest procesem inicjującym B<init> czy też jest \"\n\"wywołany jako B<telinit> poprzez wgląd w swój I<identyfikator procesu>; \"\n\"prawdziwy identyfikator procesu B<init> ma zawsze wartość B<1>.  Teraz już \"\n\"wiadomo, że zamiast wywoływać B<telinit> możesz też po prostu użyć B<init>, \"\n\"a nie skrótu.\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"ŚRODOWISKO\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\"B<Init> ustawia następujące zmienne środowiskowe dla wszystkich swoich \"\n\"dzieci:\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\"Jak mówi nazwa - wersja programu. Użyteczne dla określenia, jeśli skrypt \"\n\"uruchamia się bezpośrednio z B<init>.\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"Obecny poziom pracy systemu.\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"Poprzedni poziom pracy systemu (użyteczne po zmianie poziomów).\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\"Konsola systemu. Tak naprawdę ta wartość jest przyjmowana od jądra; jednak \"\n\"jeśli nie jest ustawiona B<init> ustawi ją domyślnie na I</dev/console>.\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"FLAGI STARTOWE\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\"Jest możliwe by przekazać pewne flagi do procesu B<init> z monitora \"\n\"startowego (np. LILO lub GRUB). B<Init> dopuszcza stosowanie następujących \"\n\"flag:\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s, S, single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\"Rozruch w trybie jednego użytkownika. W tym trybie I</etc/inittab> jest \"\n\"sprawdzany (wczytywany) i skrypty startowe rc są zwykle uruchamiane zanim \"\n\"wystartuje powłoka dla trybu jednego użytkownika.\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1-5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"Poziom działania w jakim system ma wystartować.\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b, emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\"Wejście bezpośrednio w tryb jednego użytkownika bez uruchamiania żadnych \"\n\"innych skryptów startowych.\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a, auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\"Program ładujący LILO dodaje słowo \\\"auto\\\" do linii poleceń, jeżeli \"\n\"uruchomił jądro z domyślną linią poleceń (użytkownik jej nie zmieniał).  \"\n\"Jeżeli B<init> znajdzie to słowo, ustawi zmienną środowiskową \\\"AUTOBOOT\\\" \"\n\"na \\\"yes\\\". Proszę zauważyć, że nie można tego użyć jako środka \"\n\"bezpieczeństwa - oczywiści użytkownik mógł ręcznie w linii poleceń wpisać \"\n\"\\\"auto\\\" użyć opcji B<-a>.\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z >I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\"Argument opcji B<-z> jest ignorowany. Może być użyta do wydłużenia linii \"\n\"poleceń, tak żeby zajmowała więcej miejsca na stosie. B<init> może wtedy \"\n\"manipulować linią poleceń, tak żeby B<ps>(1) pokazywało bieżący tryb \"\n\"uruchomienia.\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"INTERFEJS\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\"B<init> nasłuchuje wiadomości na łączu I<fifo> w /dev, I</run/initctl>.  \"\n\"B<telinit> używa tego do komunikacji z procesem init. Ten interfejs nie jest \"\n\"zbyt dobrze udokumentowany czy skończony. Zainteresowani powinni \"\n\"przestudiować plik I<initreq.h> w podkatalogu I<src/> archiwum tarowego z \"\n\"kodem źródłowym B<init>.\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"SYGNAŁY\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"Init reaguje na następujące sygnały:\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"Ma ten sam efekt co B<telinit q>.\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\n#, fuzzy\n#| msgid \"\"\n#| \"On receipt of this signals, init closes and re-opens its control fifo, B</\"\n#| \"run/initctl>.\"\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\"Po odebraniu tego sygnału, init zamyka i ponownie otwiera swoją kontrolkę \"\n\"fifo, B</run/initctl>.\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\n#, fuzzy\n#| msgid \"\"\n#| \"Normally the kernel sends this signal to init when CTRL-ALT-DEL is \"\n#| \"pressed. It activates the I<ctrlaltdel> action.\"\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\"Zwykle ten sygnał jest wysyłany z jądra by powiedzieć, że wciśnięta została \"\n\"kombinacja klawiszy CTRL-ALT-DEL. Powoduje to rozpoczęcie akcji \"\n\"I<ctrlaltdel>.\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\"Jądro wysyła ten sygnał jeśli wciśnięty został klawisz I<KeyboardSignal>.  \"\n\"Aktywuje to akcję I<kbrequest>.\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"ZGODNE Z\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\"B<Init> jest kompatybilny z init obecnym System V. Działa razem ze skryptami \"\n\"w katalogach I</etc/init.d> i I</etc/rc{poziom_działania}.d>.  Jeśli twój \"\n\"system używa tej konwencji, to powinien być obecny plik I<README> w katalogu \"\n\"I</etc/init.d> wyjaśniający, jak te skrypty działają.\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"PLIKI\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"OSTRZEŻENIA\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\"B<init> zakłada, że procesy i ich procesy potomne pozostają w tej samej \"\n\"grupie procesów, która była dla nich oryginalnie stworzona. Jeżeli \"\n\"jakikolwiek proces zmienił swą przynależność do grupy procesów, B<init> nie \"\n\"może ich zabić i może skończyć się na tym, że zostaną dwa procesy czytające \"\n\"z jednego wiersza terminala.\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\"W systemie Debian, wejście w poziom pracy 1 powoduje zabicie wszystkich \"\n\"procesów z wyjątkiem wątków jądra i skryptu który wykonuje zabijanie oraz \"\n\"innych procesów w jego sesji. W konsekwencji, powracanie z poziomu 1 do \"\n\"poziomu pracy trybu wielu użytkowników nie jest bezpieczne: demony, które \"\n\"zostały uruchomione w poziomie S i są wymagane do normalnego działania nie \"\n\"są dłużej uruchomione. System powinien zostać uruchomiony ponownie.\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\"Jeśli B<init> zorientuje się, że wciąż powtarza namnażanie zadanego procesu \"\n\"częściej niż 10 razy w ciągu 2 minut, wtedy założy, że gdzieś w wywołaniu \"\n\"komendy jest błąd, wyśle wiadomość o błędzie na konsolę systemu, i przerwie \"\n\"pomnażanie danego pola do upłynięcia 5 minut lub do odebrania sygnału. \"\n\"Zapobiega to \\\"zjadaniu\\\" zasobów systemu gdy ktoś popełni literówkę w pliku \"\n\"I</etc/inittab> lub gdy program normalnie uruchamiany dla danego wpisu jest \"\n\"usunięty.\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>, pierwszą \"\n\"wersję strony podręcznika napisał E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.\"\n\"rwth-aachen\\\\:.de> Michael Haardt E<.ME .>\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"13 kwietnia 2018\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\n#, fuzzy\n#| msgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"Poprzedni poziom pracy systemu (użyteczne po zmianie poziomów).\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10 lipca 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"initscript - skrypt wykonujący polecenia zawarte w inittab\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"/bin/sh /etc/initscript id poziom działanie proces\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\"Jeśli w systemie znajduje się skrypt I</etc/initscript>, B<init> spróbuje \"\n\"nim wykonać polecenia zawarte w I<inittab>.  Można go wykorzystać np. do \"\n\"ustawienia domyślnych wartości I<ulimit> i I<umask> dla każdego procesu.\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\"Poniżej znajduje się przykładowy skrypt startowy, który mógł zostać \"\n\"zainstalowany w systemie jako I</etc/initscript.sample>.\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\"#\\n\"\n\"# initscript   Wykonywany przez init(8) dla każdego wywołanego \\n\"\n\"#              przez niego programu w ten sposób:\\n\"\n\"#\\n\"\n\"#\\t/bin/sh /etc/initscript E<lt>idE<gt> E<lt>poziomE<gt> E<lt>działanieE<gt> E<lt>procesE<gt>\\n\"\n\"#\\n\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\"  # Ustawiamy bezpieczną wartość umask i ustawiamy zrzuty rdzenia:\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\"  # Zwiększamy twardy limit deskryptora pliku dla wszystkich \\n\"\n\"  # procesów do 8192. Miękki limit wciąż wynosi 1024, jednak każdy\\n\"\n\"  # nieuprzywilejowany proces może zwiększyć swój miękki limit aż do\\n\"\n\"  # wartości twardego limitu za pomocą \\\"ulimit -Sn xxx\\\"\\n\"\n\"  # (niezbędne jest jądro 2.2.13 lub nowsze)\\n\"\n\"  ulimit -Hn 8192\\n\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\"  # Wykonujemy program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\n\n#. type: Plain text\n#: ../initscript.5:65\n#, fuzzy\n#| msgid \"\"\n#| \"This script is not meant as startup script for daemons or somesuch.  It \"\n#| \"has nothing to do with a I<rc.local> style script. It's just a handler \"\n#| \"for things executed from B</etc/inittab>. Experimenting with this can \"\n#| \"make your system un(re)bootable.\"\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\"Skrypt nie jest zaprojektowany jako skrypt startowy dla demonów itp. Nie ma \"\n\"on nic wspólnego ze skryptami w stylu I<rc.local>. Jest to po prostu skrypt \"\n\"obsługujący rzeczy wykonywane z B</etc/inittab>. Własne eksperymentowanie z \"\n\"opisywanym skryptem może spowodować problemy z (ponownym) uruchomieniem \"\n\"systemu.\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript.\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4 grudnia 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\"inittab - format pliku inittab używanego przez proces init, kompatybilny z \"\n\"sysv\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\"Plik B<inittab> opisuje które procesy zostały uruchomione podczas startu i \"\n\"podczas normalnego działania (np. /etc/init.d/boot, /etc/init.d/rc, \"\n\"getty...). B<init>(8) rozróżnia różne I<poziomy pracy>, z których każdy może \"\n\"mieć swój własny zestaw procesów uruchamianych na starcie. Dopuszczalne \"\n\"poziomy pracy to B<0>-B<6> i B<A>, B<B> i B<C> dla wpisów B<ondemand> (na \"\n\"żądanie). Wpis w pliku inittab ma następujący format:\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"I<id>:I<poziomy pracy>:I<akcja>:I<proces>\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"Linie rozpoczynające się od \\\"#\\\" są ignorowane.\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<id>\"\n\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\"jest unikalną sekwencją 1-4 znaków, która identyfikuje wpis w B<inittab> \"\n\"(dla wersji sysvinit skompilowanych ze I<starą> biblioteką libc5 (E<lt> \"\n\"5.2.18 lub z bibliotekami a.out, jego długość może być ograniczona do dwóch \"\n\"znaków).\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\"Uwaga: Dla procesów getty, lub innych procesów loginowych, pole I<id> \"\n\"powinno być końcówką odpowiadającego im tty, np. B<1> dla B<tty1>.  Część \"\n\"bardzo starych programów login może oczekiwać takiej konwencji, choć trudno \"\n\"podać w tej chwili jakiś przykład.\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"I<poziomy pracy>\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"opisują, w których poziomach pracy podjąć podaną akcję.\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"I<akcja>\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"opisuje jaką akcję podjąć.\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"I<proces>\"\n\n#. type: Plain text\n#: ../inittab.5:70\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\"podaje proces, który należy uruchomić. Jeśli pole procesu rozpoczyna się \"\n\"znakiem \\\"+\\\", init nie dokona dla niego wpisów wtmp i utmp. Jest to \"\n\"wymagane dla getty, które wolą robić to samodzielnie. Jest to też błąd \"\n\"historyczny. Ograniczenie długości tego pola wynosi 127 znaków.\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\"Pole I<poziomy pracy> może zawierać wiele znaków dla różnych poziomów. Na \"\n\"przykład, B<123> określa, że proces powinien być uruchamiany w poziomach \"\n\"pracy 1, 2 i 3. I<poziomy pracy> do wpisów B<ondemand> mogą zawierać B<A>, \"\n\"B<B> lub B<C>. Pole to jest ignorowane w przypadku następujących wpisów: \"\n\"B<sysinit>, B<boot> i B<bootwait>.\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\"Gdy poziom pracy jest zmieniany, zabijane są wszystkie procesy, które nie są \"\n\"podane w nowym poziomie pracy, zaczynając od sygnału \\\\s-2SIGTERM\\\\s0, a \"\n\"następnie \\\\s-2SIGKILL\\\\s0.\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"Dopuszczalne akcje w polu I<akcje> to:\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"\"\n\"Proces będzie uruchomiony od nowa po każdym jego zakończeniu (np. getty).\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\"Proces będzie uruchomiony raz (gdy nadejdzie właściwy poziom pracy), a \"\n\"B<init> będzie czekał na jego zakończenie.\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"Proces będzie wywołany raz po wejściu we właściwy poziom pracy.\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\"Proces zostanie wywołany podczas rozruchu. Pole I<poziomy pracy> jest \"\n\"ignorowane.\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"Proces zostanie wywołany podczas rozruchu, podczas gdy init czeka na jego \"\n\"zakończenie (np. /etc/rc). Pole I<poziomy pracy> jest ignorowane.\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"Nie robi nic.\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\"Proces, który jest zaznaczony poziomem pracy B<ondemand> będzie wywoływany \"\n\"za każdym razem, gdy zostanie wywołany wskazany poziom żądania.  Mimo to \"\n\"jednak, nie nastąpi zmiana poziomu pracy (poziomy pracy B<ondemand> to \\\"a\"\n\"\\\", \\\"b\\\", \\\"c\\\").\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\"Pole to określa poziom pracy, który powinien być uruchomiony po procesie \"\n\"rozruchu. Jeśli żaden taki nie istnieje, init zapyta o poziom pracy na \"\n\"konsoli. Pole I<proces> jest ignorowane.\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"Proces zostanie wywołany podczas rozruchu. Zostanie wywołany przed wszelkimi \"\n\"wpisami B<boot> czy B< bootwait>.  Pole I<poziomy pracy> jest ignorowane.\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\"Proces zostanie wywołany w czasie problemów z zasilaniem. B<init> jest z \"\n\"reguły informowany o takim zdarzeniu przez proces porozumiewający się z \"\n\"podłączonym do komputera UPS-em. B<init> będzie czekał na zakończenie tego \"\n\"procesu przed dalszą kontynuacją.\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\"Podobne do B<powerwait>, lecz init nie będzie czekał na zakończenie tego \"\n\"procesu.\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\"Proces zostanie wywołany, gdy B<init> otrzyma sygnał, że zasilanie zostało \"\n\"przywrócone.\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\"Proces zostanie wykonany, gdy B<init> dowie się o krytycznym poziomie \"\n\"baterii zewnętrznego UPS-a i o właśnie zawodzącym zasilaniu (jeśli \"\n\"zewnętrzny UPS i monitorujący go proces są w stanie wykryć taki stan).\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\"Proces zostanie wykonany gdy B<init> otrzyma sygnał B<SIGINT>.  Znaczy to, \"\n\"że ktoś na konsoli nacisnął kombinację B<CTRL-ALT-DEL>. Zazwyczaj wywołuje \"\n\"się wtedy coś w rodzaju B<shutdown>, zarówno w celu przejścia do poziomu \"\n\"jednoużytkownikowego, jak i do ponownego uruchomienia komputera.\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\"Proces zostanie wywołany gdy B<init> otrzyma sygnał z sterownika klawiatury, \"\n\"mówiący że na konsoli została naciśnięta specjalna kombinacja klawiszy.\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\"Dokumentacja tej funkcji nie jest jeszcze kompletna; więcej danych można \"\n\"znaleźć w pakietach kbd-x.xx (w chwili powstania tego tekstu było to \"\n\"kbd-0.94). Ogólnie, można mapować niektóre kombinacje klawiszy do akcji \"\n\"\\\"KeyboardSignal\\\". Na przykład, aby zmapować na ten cel kombinację alt plus \"\n\"strzałka w górę, należy użyć następującego wpisu w swoim pliku keymap:\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"alt keycode 103 = KeyboardSignal\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"Oto przykład inittab, który zawiera stary inittab Linuksa:\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\"# inittab do Linuksa\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\"Ten plik inittab wywołuje I</etc/rc> podczas rozruchu i uruchamia getty dla \"\n\"tty1-tty4.\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\"Bardziej wykwintny inittab, z różnymi poziomami pracy (patrz komentarze):\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\"# Poziom, w którym startować\\n\"\n\"id:2:initdefault:\\n\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\"# Skrypt inicjujący/konfigurujący system w czasie rozruchu.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\"# Co robić w trybie jednoużytkownikowym.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\"# /etc/init.d wykonuje skrypty S i K w trakcie\\n\"\n\"# zmiany poziomu pracy.\\n\"\n\"#\\n\"\n\"# Poziom pracy 0 oznacza zatrzymanie.\\n\"\n\"# Poziom pracy 1 jest jednoużytkownikowy.\\n\"\n\"# Poziomy pracy 2-5 są wieloużytkownikowe.\\n\"\n\"# Poziom pracy 6 oznacza ponowne uruchomienie.\\n\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\"# Co zrobić przy ctrl+alt+del.\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\"# Poziomy 2 i 3: getty na konsolach wirtualnych\\n\"\n\"# Poziom      3: getty na terminalu (ttyS0) i modemie (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\n#, fuzzy\n#| msgid \"\"\n#| \"B<Init> was written by Miquel van Smoorenburg (miquels@cistron.nl).  This \"\n#| \"manual page was written by Sebastian Lederer (lederer@francium.informatik.\"\n#| \"uni-bonn.de) and modified by Michael Haardt (u31b3hs@pool.informatik.rwth-\"\n#| \"aachen.de).\"\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"Init został napisany przez Miquela van Smoorenburga (miquels@cistron.nl), \"\n\"strona podręcznika została napisana przez Sebastiana Lederera \"\n\"(lederer@francium.informatik.uni-bonn.de) i zmodyfikowana przez Michaela \"\n\"Haardta (u31b3hs@pool.informatik.rwth-aachen.de).\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4 listopada 2003\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"killall5 - wysyła sygnał do wszystkich procesów\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\"B<killall5> B<-numer-sygnału> [B<-o> I<pomiń-pid>[,I<pomiń-pid>...]] [B<-o> \"\n\"I<pomiń-pid>[,I<pomiń-pid>...]...]\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\"B<killall5> jest poleceniem B<killall> z SystemV. Wysyła sygnał do \"\n\"wszystkich procesów, poza procesami jądra i procesami swojej sesji, więc nie \"\n\"ubije powłoki, w której pracuje skrypt, w którym wywołano tę komendę. \"\n\"Podstawowym (jedynym) zastosowaniem polecenia jest użycie w plikach \"\n\"startowych B<rc>, z katalogu I</etc/init.d>.\"\n\n#. type: IP\n#: ../killall5.8:35\n#, no-wrap\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-o> I<pomiń-pid>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"\"\n\"Nakazuje B<killall5> pomijać procesy o podanym identyfikatorze procesu.\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\"B<killall5> może zostać wywołany również jako B<pidof>(8), który jest \"\n\"dowiązaniem symbolicznym do programu B<killall5>.\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\"Program zwraca zero, jeśli istnieje zabity proces. Zwraca 2, gdy nie zabito \"\n\"żadnego procesu i 1, gdy nie udało się znaleźć żadnego procesu (brak I</proc/\"\n\">).\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"31 lipca 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"last, lastb - pokazuje listę ostatnio zalogowanych użytkowników\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\n#, fuzzy\n#| msgid \"\"\n#| \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#| \"designated by the B<-f> option) and displays a list of all users logged \"\n#| \"in (and out) since that file was created.  One or more I<usernames> and/\"\n#| \"or I<ttys> can be given, in which case B<last> will show only the entries \"\n#| \"matching those arguments.  Names of I<ttys> can be abbreviated, thus \"\n#| \"B<last 0> is the same as B<last tty0>.\"\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\"Program B<last> przeszukuje wstecz plik B</var/log/wtmp> (lub plik wskazany \"\n\"opcją B<-f>)  i wyświetla listę wszystkich zalogowanych (i wylogowanych) od \"\n\"czasu utworzenia pliku użytkowników. Można podać jedną lub więcej I<nazw-\"\n\"użytkowników> i/lub I<tty> (terminali); w tym przypadku B<last> pokaże \"\n\"jedynie zapisy pasujące do tych argumentów. Nazwy I<tty> mogą być skracane, \"\n\"zatem B<last 0>, to to samo, co B<last tty0>.\"\n\n#. type: Plain text\n#: ../last.1:61\n#, fuzzy\n#| msgid \"\"\n#| \"When catching a SIGINT signal (generated by the interrupt key, usually \"\n#| \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#| \"through the file; in the case of the SIGINT signal B<last> will then \"\n#| \"terminate.\"\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\"Po przechwyceniu sygnału SIGINT (generowany przez klawisz przerwania, zwykle \"\n\"control-C) lub sygnał SIGQUIT, B<last> pokaże jak daleko przeszukał plik; \"\n\"następnie, w przypadku sygnału SIGINT, B<last> przerwie pracę.\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\"Pseudoużytkownik B<reboot> rejestrowany jest przy każdorazowym przeładowaniu \"\n\"systemu. Zatem B<last reboot> pokaże rejestr (log) wszystkich przeładowań od \"\n\"utworzenia pliku rejestrującego.\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\"B<lastb> jest tym samym, co B<last>, z wyjątkiem tego, że domyślnie pokazuje \"\n\"zapisy z pliku I</var/log/btmp>, zawierającego zakończone niepowodzeniem \"\n\"próby logowań.\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<plik>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<liczba>\"\n\n#. type: Plain text\n#: ../last.1:75\n#, fuzzy\n#| msgid \"Tell B<last> how many lines to show.\"\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"Liczba mówiąca B<last>, ile wierszy ma pokazać.\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<-n> I<liczba>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\n#, fuzzy\n#| msgid \"\"\n#| \"Display the state of logins since the specified I<time>.  This is useful, \"\n#| \"e.g., to easily determine who was logged in at a particular time.  The \"\n#| \"option is often combined with B<--until>.\"\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\"Wyświetla stań logowań w podanym I<czasie>. Jest to przydatne np. aby łatwo \"\n\"dowiedzieć się kto logował się w danym czasie. Opcja jest często łączona z \"\n\"B<--until>.\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"Nie wyświetla pola z nazwą hosta.\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\n#, fuzzy\n#| msgid \"\"\n#| \"Display the hostname in the last column. Useful in combination with the \"\n#| \"B<--dns> option.\"\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\"Wyświetla nazwę hosta w ostatniej kolumnie. Przydatne w połączeniu z opcją \"\n\"B<--dns>.\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\"Dla logowań nie-lokalnych Linux przechowuje nie tylko nazwę zdalnego hosta, \"\n\"ale i jego numer IP. Opcja ta przekłada numer IP z powrotem na nazwę hosta.\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"Wypisuje pełne czasy zalogowania i wylogowania łącznie z datą.\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"Wyświetla pełne nazwy użytkowników i domeny użytkowników na wyjście.\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\"Wyświetla zapisy o zamknięciach systemu i zmianach jego poziomów pracy.\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\"Mogą nie zostać odnalezione pliki I<wtmp> i I<btmp>. System rejestruje \"\n\"informacje w tych plikach tylko wtedy, gdy istnieją. Wynika to z lokalnej \"\n\"konfiguracji. Aby były one używane, można je utworzyć po prostu poleceniem \"\n\"B<touch>(1) (na przykład, B<touch /var/log/wtmp>).\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"26 lutego 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Polecenia użytkownika\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\n#, fuzzy\n#| msgid \"\"\n#| \"If no arguments are given, B<mesg> shows the current message status on \"\n#| \"standard error output.\"\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Jeśli nie poda się argumentów, B<mesg> wypisze bieżący status wiadomości na \"\n\"standardowe wyjście błędów.\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"MOUNTPOINT\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"15 marca 2004\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1 września 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"pidof - znajduje identyfikator procesu działającego programu\"\n\n#. type: Plain text\n#: ../pidof.8:36\n#, fuzzy\n#| msgid \"\"\n#| \"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-o> I<omitpid[,omitpid..]>] \"\n#| \"[B<-o> I<omitpid[,omitpid..]..>] B<program> [B<program..>]\"\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-o> I<pomiń-pid>[B<,>I<pomiń-\"\n\"pid>...] I<program> [I<program..>]\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\"B<pidof> wyszukuje identyfikatory procesów (PID-y) wskazanych programów. \"\n\"Wypisuje je następnie na standardowe wyjście. Program ten jest na ogół \"\n\"używany w skryptach zmian poziomu pracy (runlevel change scripts), \"\n\"szczególnie jeśli system ma strukturę I<rc> typu I<System-V>. Skrypty te są \"\n\"wtedy zlokalizowane w I</etc/rc.?d>, gdzie ? oznacza poziom pracy. Jeżeli \"\n\"system posiada program B<start-stop-daemon>(8), to powinien być on stosowany \"\n\"zamiast B<pidof>.\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\"Pojedynczy strzał - mówi to programowi, by wyświetlił tylko jeden I<pid>.\"\n\n#. type: Plain text\n#: ../pidof.8:51\n#, fuzzy\n#| msgid \"\"\n#| \"Only return process ids that are running with the same root directory.  \"\n#| \"This option is ignored for non-root users, as they will be unable to \"\n#| \"check the current root directory of processes they do not own.\"\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\"Zwraca tylko identyfikatory procesów działających w tym samym katalogu \"\n\"głównym.  Ta opcja jest nieprzydatna dla użytkowników innych niż root, \"\n\"ponieważ nie będą oni mogli sprawdzić aktualnego katalogu głównego procesów, \"\n\"których nie są właścicielami.\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\"Zapobiega wywołaniu funkcji systemowej B<stat>(2) na wszystkich plikach \"\n\"binarnych, zlokalizowanych w sieciowym systemie plików, takim jak B<NFS>. \"\n\"Zamiast użycia tej opcji, można również ustawić i wyeksportować zmienną \"\n\"B<PIDOF_NETFS>.\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\"Skrypty również - to powoduje, że program zwraca również identyfikatory \"\n\"procesów powłok, pracujących z podanymi skryptami.\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"B<-o> I<pomiń-pid>\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\"Mówi programowi, by ominął procesy z podanym identyfikatorem procesu. \"\n\"Istnieje specjalny pid B<%PPID>, który może być używany do wskazywania \"\n\"procesu rodzicielskiego programu B<pidof>, czyli innymi słowy do wywołującej \"\n\"powłoki lub skryptu.\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"Znaleziono przynajmniej jeden program o żądanej nazwie.\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"Nie znaleziono programu o żądanej nazwie.\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\"B<pidof> jest w rzeczywistości tym samym programem co B<killall5>(8), a jego \"\n\"zachowanie zależy od nazwy, spod której został wywołany.\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\"Gdy B<pidof> jest wywoływany z pełną, ścieżkową nazwą programu, którego PID \"\n\"ma znaleźć, jest rozsądnie bezpieczny. W przeciwnym razie możliwe, że zwróci \"\n\"identyfikatory pid programów, które przypadkowo mają tę samą nazwę, co \"\n\"szukany przez nas, ale faktycznie są innymi programami. Proszę zauważyć, że \"\n\"nazwy plików wykonywalnych działających procesów są pozyskiwane za pomocą \"\n\"B<readlink>(2), tak więc dowiązania symboliczne do plików wykonywalnych \"\n\"również są dopasowywane.\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"12 listopada 2018\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<plik\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"27 maja 1997\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"runlevel - odnajduje bieżący i poprzedni poziom pracy systemu\"\n\n#. type: Plain text\n#: ../runlevel.8:24\n#, fuzzy\n#| msgid \"B<runlevel> [options...]\"\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"B<runlevel> [opcje...]\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"12 listopada 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"Przeładowuje (ang. reboot) po wyłączeniu systemu.\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\n#, fuzzy\n#| msgid \"shutdown\"\nmsgid \"When to shutdown.\"\nmsgstr \"shutdown\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\n#, fuzzy\n#| msgid \"Messages are not allowed.\"\nmsgid \"Message to send to all users.\"\nmsgstr \"Wiadomości nie są dozwolone\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"17 stycznia 2006\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"sulogin - login w trybie jednoużytkownikowym\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"Wyświetlany jest następujący komunikat zachęty:\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"\"\n\"B<Give root password for system maintenance> (Podaj hasło roota do \"\n\"konserwacji systemu)\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"\"\n\"B<(or type Control-D for normal startup)> (lub wciśnij ^D aby kontynuować \"\n\"zwykły start):\"\n\n#. type: Plain text\n#: ../sulogin.8:45\n#, fuzzy\n#| msgid \"\"\n#| \"B<sulogin> will be connected to the current terminal, or to the optional \"\n#| \"I<tty> device that can be specified on the command line (typically I</dev/\"\n#| \"console>).\"\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\"B<sulogin> będzie podłączony do bieżącego terminala lub do opcjonalnego \"\n\"urządzenia I<tty> podanego w wierszu polecenia zwykle (I</dev/console>).\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\n#, fuzzy\n#| msgid \"\"\n#| \"When the user exits from the single-user shell, or presses control-D at \"\n#| \"the prompt, the system will continue to boot.\"\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\"Po tym, jak użytkownik wyjdzie z trybu jednoużytkownikowego lub wciśnie \"\n\"control-D po wyświetleniu zachęty, system będzie kontynuował rozruch.\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, fuzzy, no-wrap\n#| msgid \"ENVIRONMENT\"\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"ŚRODOWISKO\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\"B<sulogin> szuka zmiennych środowiskowych B<SUSHELL> lub B<sushell>, aby \"\n\"określić którą powłokę uruchomić. Jeśli zmienna środowiskowa nie jest \"\n\"ustawiona, to program spróbuje wykonać powłokę roota z pliku I</etc/passwd>. \"\n\"Jeśli to również się nie powiedzie, to na końcu wykorzystana zostanie \"\n\"powłoka I</bin/sh>.\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\n#, fuzzy\n#| msgid \"\"\n#| \"Only use the B<-e> option if you are sure the console is physically \"\n#| \"protected against unauthorized access.\"\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\"Opcji B<-e> należy używać tylko, gdy jest się pewnym, że konsola jest \"\n\"fizycznie zabezpieczona przed nieautoryzowanym dostępem.\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"8 lutego 2010\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"B<utmpdump> [B<-froh>] I<nazwa_pliku>\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"15 kwietnia 2003\"\n\n#. type: Plain text\n#: ../wall.1:22\n#, fuzzy\n#| msgid \"wall - write a message to all users\"\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - wysyła wiadomość do użytkowników\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, no-wrap\n#~ msgid \"B<a>,\"\n#~ msgstr \"B<a>,\"\n\n#~ msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#~ msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n\n#, fuzzy, no-wrap\n#~| msgid \"LAST, LASTB\"\n#~ msgid \"LAST,LASTB\"\n#~ msgstr \"LAST, LASTB\"\n\n#, fuzzy, no-wrap\n#~| msgid \"Linux System Administrator's Manual\"\n#~ msgid \"Linux User's Manual\"\n#~ msgstr \"Podręcznik administratora systemu Linux\"\n\n#, fuzzy\n#~| msgid \"Miquel van Smoorenburg, miquels@cistron.nl\"\n#~ msgid \"Miquel van Smoorenburg (miquels@cistron.nl)\"\n#~ msgstr \"Miquel van Smoorenburg, miquels@cistron.nl\"\n\n#, no-wrap\n#~ msgid \"-s\"\n#~ msgstr \"-s\"\n\n#, no-wrap\n#~ msgid \"-c\"\n#~ msgstr \"B<-c>\"\n\n#, no-wrap\n#~ msgid \"-n\"\n#~ msgstr \"-n\"\n\n#, no-wrap\n#~ msgid \"-q\"\n#~ msgstr \"-q\"\n\n#, no-wrap\n#~ msgid \"-x\"\n#~ msgstr \"-x\"\n\n#, no-wrap\n#~ msgid \"-z\"\n#~ msgstr \"-z\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> \"\n#~| \"to determine what shell to start.  If the environment variable is not \"\n#~| \"set, it will try to execute root's shell from I</etc/passwd>.  If that \"\n#~| \"fails, it will fall back to I</bin/sh>.\"\n#~ msgid \"\"\n#~ \"I<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n#~ \"determine what shell to start. If the environment variable is not set, it \"\n#~ \"will try to execute root's shell from /etc/passwd. If that fails it will \"\n#~ \"fall back to B</bin/sh>.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> szuka zmiennych środowiskowych B<SUSHELL> lub B<sushell>, aby \"\n#~ \"określić którą powłokę uruchomić. Jeśli zmienna środowiskowa nie jest \"\n#~ \"ustawiona, to program spróbuje wykonać powłokę roota z pliku I</etc/\"\n#~ \"passwd>. Jeśli to również się nie powiedzie, to na końcu wykorzystana \"\n#~ \"zostanie powłoka I</bin/sh>.\"\n\n#, fuzzy\n#~| msgid \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n#~ msgid \"Miquel van Smoorenburg E<lt>miquels@cistron.nlE<gt>\"\n#~ msgstr \"Miquel van Smoorenburg ,E<lt>miquels@cistron.nlE<gt>\"\n\n#, no-wrap\n#~ msgid \"systemd 249\"\n#~ msgstr \"systemd 249\"\n\n#, no-wrap\n#~ msgid \"halt\"\n#~ msgstr \"halt\"\n\n#~ msgid \"B<halt> [OPTIONS...]\"\n#~ msgstr \"B<halt> [I<OPCJE>...]\"\n\n#~ msgid \"B<poweroff> [OPTIONS...]\"\n#~ msgstr \"B<poweroff> [I<OPCJE>...]\"\n\n#~ msgid \"B<reboot> [OPTIONS...]\"\n#~ msgstr \"B<reboot> [I<OPCJE>...]\"\n\n#~ msgid \"\"\n#~ \"B<halt>, B<poweroff>, B<reboot> may be used to halt, power-off, or reboot \"\n#~ \"the machine\\\\&. All three commands take the same options\\\\&.\"\n#~ msgstr \"\"\n#~ \"B<halt>, B<poweroff>, B<reboot> służy do zatrzymania, wyłączenia lub \"\n#~ \"przeładowania komputera. Wszystkie trzy polecenia przyjmują te same opcje.\"\n\n#~ msgid \"The following options are understood:\"\n#~ msgstr \"Obsługiwane są następujące opcje:\"\n\n#~ msgid \"B<--help>\"\n#~ msgstr \"B<--help>\"\n\n#~ msgid \"Print a short help text and exit\\\\&.\"\n#~ msgstr \"Wyświetla krótki komunikat pomocy i wychodzi\\\\&.\"\n\n#~ msgid \"B<--halt>\"\n#~ msgstr \"B<--halt>\"\n\n#~ msgid \"\"\n#~ \"Halt the machine, regardless of which one of the three commands is invoked\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Zatrzymuje komputer, niezależnie od tego, którego z trzech poleceń użyto\"\n#~ \"\\\\&.\"\n\n#~ msgid \"B<-p>, B<--poweroff>\"\n#~ msgstr \"B<-p>, B<--poweroff>\"\n\n#~ msgid \"\"\n#~ \"Power-off the machine, regardless of which one of the three commands is \"\n#~ \"invoked\\\\&.\"\n#~ msgstr \"\"\n#~ \"Wyłącza komputer, niezależnie od tego, którego z trzech poleceń użyto\\\\&.\"\n\n#~ msgid \"B<--reboot>\"\n#~ msgstr \"B<--reboot>\"\n\n#~ msgid \"\"\n#~ \"Reboot the machine, regardless of which one of the three commands is \"\n#~ \"invoked\\\\&.\"\n#~ msgstr \"\"\n#~ \"Przeładowuje komputer, niezależnie od tego, którego z trzech poleceń użyto\"\n#~ \"\\\\&.\"\n\n#~ msgid \"B<-f>, B<--force>\"\n#~ msgstr \"B<-f>, B<--force>\"\n\n#~ msgid \"\"\n#~ \"Force immediate halt, power-off, or reboot\\\\&. When specified once, this \"\n#~ \"results in an immediate but clean shutdown by the system manager\\\\&. When \"\n#~ \"specified twice, this results in an immediate shutdown without contacting \"\n#~ \"the system manager\\\\&. See the description of B<--force> in \"\n#~ \"B<systemctl>(1)  for more details\\\\&.\"\n#~ msgstr \"\"\n#~ \"Wymusza natychmiastowe zatrzymanie, wyłączenie lub przeładowanie\\\\&. Przy \"\n#~ \"jednokrotnym użyciu opcji, menedżer systemu dokona natychmiastowego, ale \"\n#~ \"bezpiecznego wyłączenia. \\\\&. Dwukrotne podanie opcji spowoduje \"\n#~ \"natychmiastowe zamknięcie bez użycia menedżera systemu. \\\\&. Więcej \"\n#~ \"szczegółów znajduje się w opisie opcji B<--force> podręcznika systemowego \"\n#~ \"B<systemctl>(1)\\\\&.\"\n\n#~ msgid \"B<-w>, B<--wtmp-only>\"\n#~ msgstr \"B<-w>, B<--wtmp-only>\"\n\n#~ msgid \"\"\n#~ \"Only write wtmp shutdown entry, do not actually halt, power-off, reboot\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Dokonuje jedynie wpisu wtmp , bez rzeczywistego zatrzymania, wyłączenia \"\n#~ \"lub przeładowania\\\\&.\"\n\n#~ msgid \"B<-d>, B<--no-wtmp>\"\n#~ msgstr \"B<-d>, B<--no-wtmp>\"\n\n#~ msgid \"B<-n>, B<--no-sync>\"\n#~ msgstr \"B<-n>, B<--no-sync>\"\n\n#~ msgid \"\"\n#~ \"Don\\\\*(Aqt sync hard disks/storage media before halt, power-off, reboot\"\n#~ \"\\\\&.\"\n#~ msgstr \"\"\n#~ \"Nie wykonuje synchronizacji twardych dysków/nośników danych przed \"\n#~ \"zatrzymaniem, wyłączeniem lub przeładowaniem\\\\&.\"\n\n#~ msgid \"B<--no-wall>\"\n#~ msgstr \"B<--no-wall>\"\n\n#~ msgid \"Do not send wall message before halt, power-off, reboot\\\\&.\"\n#~ msgstr \"\"\n#~ \"Nie wysyła komunikatu wall przed zatrzymaniem, wyłączeniem lub \"\n#~ \"przeładowaniem\\\\&.\"\n\n#~ msgid \"On success, 0 is returned, a non-zero failure code otherwise\\\\&.\"\n#~ msgstr \"\"\n#~ \"W przypadku powodzenia zwracane jest 0, w razie błędu kod jest niezerowy\"\n#~ \"\\\\&.\"\n\n#~ msgid \"\"\n#~ \"These commands are implemented in a way that preserves basic \"\n#~ \"compatibility with the original SysV commands\\\\&.  B<systemctl>(1)  verbs \"\n#~ \"B<halt>, B<poweroff>, B<reboot> provide the same functionality with some \"\n#~ \"additional features\\\\&.\"\n#~ msgstr \"\"\n#~ \"Polecenia zaimplementowano w sposób zapewniający podstawową \"\n#~ \"kompatybilność z pierwotnymi poleceniami z SysV\\\\&.  Argumenty B<halt>, \"\n#~ \"B<poweroff>, B<reboot> narzędzia B<systemctl>(1) obsługują te same \"\n#~ \"funkcje oraz kilka dodatkowych\\\\&.\"\n\n#~ msgid \"\"\n#~ \"Note that on many SysV systems B<halt> used to be synonymous to \"\n#~ \"B<poweroff>, i\\\\&.e\\\\&. both commands would equally result in powering \"\n#~ \"the machine off\\\\&. systemd is more accurate here, and B<halt> results in \"\n#~ \"halting the machine only (leaving power on), and B<poweroff> is required \"\n#~ \"to actually power it off\\\\&.\"\n#~ msgstr \"\"\n#~ \"Proszę zauważyć, że na wielu systemach SysV polecenie B<halt> było \"\n#~ \"synonimem B<poweroff>, tzn. oba polecenia powodowały wyłączenie komputera\"\n#~ \"\\\\&. W systemd jest to dokładniejsze, B<halt> powoduje zatrzymanie \"\n#~ \"komputera (z pozostawieniem włączonego zasilania), a do wyłączenia \"\n#~ \"komputera należy użyć B<poweroff>\\\\&.\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<shutdown>(8), B<wall>(1)\"\n\n#, no-wrap\n#~ msgid \"systemd 250\"\n#~ msgstr \"systemd 250\"\n\n#~ msgid \"\"\n#~ \"This script is not meant as startup script for daemons or somesuch.  It \"\n#~ \"has nothing to do with a I<rc.local> style script. It's just a handler \"\n#~ \"for things executed from B</etc/inittab>. Experimenting with this can \"\n#~ \"make your system un(re)bootable.\"\n#~ msgstr \"\"\n#~ \"Skrypt nie jest zaprojektowany jako skrypt startowy dla demonów itp. Nie \"\n#~ \"ma on nic wspólnego ze skryptami w stylu I<rc.local>. Jest to po prostu \"\n#~ \"skrypt obsługujący rzeczy wykonywane z B</etc/inittab>. Własne \"\n#~ \"eksperymentowanie z opisywanym skryptem może spowodować problemy z \"\n#~ \"(ponownym) uruchomieniem systemu.\"\n\n#, no-wrap\n#~ msgid \"2021-06-02\"\n#~ msgstr \"2 czerwca 2021 r.\"\n\n#, no-wrap\n#~ msgid \"util-linux 2.37.2\"\n#~ msgstr \"util-linux 2.37.2\"\n\n#~ msgid \"B<last> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<last> [I<opcje>] [I<nazwa-użytkownika>...] [I<tty>...]\"\n\n#~ msgid \"B<lastb> [options] [I<username>...] [I<tty>...]\"\n#~ msgstr \"B<lastb> [I<opcje>] [I<nazwa-użytkownika>...] [I<tty>...]\"\n\n#~ msgid \"\"\n#~ \"B<last> searches back through the I</var/log/wtmp> file (or the file \"\n#~ \"designated by the B<-f> option) and displays a list of all users logged \"\n#~ \"in (and out) since that file was created. One or more I<usernames> and/or \"\n#~ \"I<ttys> can be given, in which case B<last> will show only the entries \"\n#~ \"matching those arguments. Names of I<ttys> can be abbreviated, thus \"\n#~ \"B<last 0> is the same as B<last tty0>.\"\n#~ msgstr \"\"\n#~ \"Program B<last> przeszukuje wstecz plik B</var/log/wtmp> (lub plik \"\n#~ \"wskazany opcją B<-f>)  i wyświetla listę wszystkich zalogowanych (i \"\n#~ \"wylogowanych) od czasu utworzenia pliku użytkowników. Można podać jedną \"\n#~ \"lub więcej I<nazw-użytkowników> i/lub I<tty> (terminali); w tym przypadku \"\n#~ \"B<last> pokaże jedynie zapisy pasujące do tych argumentów. Nazwy I<tty> \"\n#~ \"mogą być skracane, zatem B<last 0>, to to samo, co B<last tty0>.\"\n\n#~ msgid \"\"\n#~ \"When catching a B<SIGINT> signal (generated by the interrupt key, usually \"\n#~ \"control-C) or a SIGQUIT signal, B<last> will show how far it has searched \"\n#~ \"through the file; in the case of the B<SIGINT> signal B<last> will then \"\n#~ \"terminate.\"\n#~ msgstr \"\"\n#~ \"Po przechwyceniu sygnału B<SIGINT> (generowany przez klawisz przerwania, \"\n#~ \"zwykle control-C) lub sygnał B<SIGQUIT>, B<last> pokaże jak daleko \"\n#~ \"przeszukał plik; następnie, w przypadku sygnału B<SIGINT>, B<last> \"\n#~ \"przerwie pracę.\"\n\n#~ msgid \"\"\n#~ \"The pseudo user B<reboot> logs in each time the system is rebooted. Thus \"\n#~ \"B<last reboot> will show a log of all the reboots since the log file was \"\n#~ \"created.\"\n#~ msgstr \"\"\n#~ \"Pseudoużytkownik B<reboot> rejestrowany jest przy każdorazowym \"\n#~ \"przeładowaniu systemu. Zatem B<last reboot> pokaże rejestr (log) \"\n#~ \"wszystkich przeładowań od utworzenia pliku rejestrującego.\"\n\n#~ msgid \"B<-a>, B<--hostlast>\"\n#~ msgstr \"B<-a>, B<--hostlast>\"\n\n#~ msgid \"B<-d>, B<--dns>\"\n#~ msgstr \"B<-d>, B<--dns>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>. The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"B<last> użyje podanego I<pliku> zamiast I</var/log/wtmp>. Opcję B<--file> \"\n#~ \"można podać wiele razy i przetworzone będą wszystkie podane pliki.\"\n\n#~ msgid \"B<-F>, B<--fulltimes>\"\n#~ msgstr \"B<-F>, B<--fulltimes>\"\n\n#~ msgid \"B<-i>, B<--ip>\"\n#~ msgstr \"B<-i>, B<--ip>\"\n\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host\\\\(cqs IP number instead of the name.\"\n#~ msgstr \"Jak B<--dns>, lecz wyświetla numer IP zamiast nazwy komputera.\"\n\n#~ msgid \"B<->I<number>; B<-n>, B<--limit> I<number>\"\n#~ msgstr \"B<->I<liczba>; B<-n>, B<--limit> I<liczba>\"\n\n#~ msgid \"B<-p>, B<--present> I<time>\"\n#~ msgstr \"B<-p>, B<--present> I<czas>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time. This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"Wyświetla użytkowników którzy byli obecni w podanym czasie. Jest to \"\n#~ \"podobne do użycia razem opcji B<--since> i B<--until> z takim samym \"\n#~ \"I<czasem>.\"\n\n#~ msgid \"B<-R>, B<--nohostname>\"\n#~ msgstr \"B<-R>, B<--nohostname>\"\n\n#~ msgid \"B<-s>, B<--since> I<time>\"\n#~ msgstr \"B<-s>, B<--since> I<czas>\"\n\n#~ msgid \"\"\n#~ \"Display the state of logins since the specified I<time>. This is useful, \"\n#~ \"e.g., to easily determine who was logged in at a particular time. The \"\n#~ \"option is often combined with B<--until>.\"\n#~ msgstr \"\"\n#~ \"Wyświetla stań logowań w podanym I<czasie>. Jest to przydatne np. aby \"\n#~ \"łatwo dowiedzieć się kto logował się w danym czasie. Opcja jest często \"\n#~ \"łączona z B<--until>.\"\n\n#~ msgid \"B<-t>, B<--until> I<time>\"\n#~ msgstr \"B<-t>, B<--until> I<czas>\"\n\n#~ msgid \"Display the state of logins until the specified I<time>.\"\n#~ msgstr \"Wyświetla stan logowań do podanego I<czasu>.\"\n\n#~ msgid \"B<--time-format> I<format>\"\n#~ msgstr \"B<--time-format> I<format>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>. The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option. The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format. The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"Określa I<format> wyjściowy znaczników czasu na jeden z: B<notime>, \"\n#~ \"B<short>, B<full> lub B<iso>. Wariant B<notime> nie wypisze żadnych \"\n#~ \"znacznikóœ czasu, B<short> jest domyślny, a B<full> jest tym samym. co \"\n#~ \"opcja B<--fulltimes>. Wariant B<iso> wypisze znaczniki czasu w formacie \"\n#~ \"ISO-8601. Format ISO zawiera informacje o strefie czasowej, co czyni go \"\n#~ \"preferowanym, gdy wynik jest sprawdzany poza pierwotnym komputerem.\"\n\n#~ msgid \"B<-w>, B<--fullnames>\"\n#~ msgstr \"B<-w>, B<--fullnames>\"\n\n#~ msgid \"B<-x>, B<--system>\"\n#~ msgstr \"B<-x>, B<--system>\"\n\n#, no-wrap\n#~ msgid \"TIME FORMATS\"\n#~ msgstr \"FORMAT CZASU\"\n\n#~ msgid \"\"\n#~ \"The options that take the I<time> argument understand the following \"\n#~ \"formats:\"\n#~ msgstr \"\"\n#~ \"Opcje przyjmujące argument I<czas> mogą korzystać z następujących \"\n#~ \"formatów:\"\n\n#, no-wrap\n#~ msgid \".sp\\n\"\n#~ msgstr \".sp\\n\"\n\n#, no-wrap\n#~ msgid \"YYYYMMDDhhmmss\"\n#~ msgstr \"I<RRRRMMDDggmmss>\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm:ss\"\n#~ msgstr \"I<RRRR>B<->I<MM>B<->I<DD>B< >I<gg>B<:>I<mm>B<:>I<ss>\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD hh:mm\"\n#~ msgstr \"I<RRRR>B<->I<MM>B<->I<DD>B< >I<gg>B<:>I<mm>\"\n\n#, no-wrap\n#~ msgid \"(seconds will be set to 00)\"\n#~ msgstr \"(sekundy będą ustawione na 00)\"\n\n#, no-wrap\n#~ msgid \"YYYY-MM-DD\"\n#~ msgstr \"I<RRRR>B<->I<MM>B<->I<DD>\"\n\n#, no-wrap\n#~ msgid \"(time will be set to 00:00:00)\"\n#~ msgstr \"(czas będzie ustawiony na 00:00:00)\"\n\n#, no-wrap\n#~ msgid \"hh:mm:ss\"\n#~ msgstr \"I<gg>B<:>I<mm>B<:>I<ss>\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today)\"\n#~ msgstr \"(data będzie ustawiona na dziś)\"\n\n#, no-wrap\n#~ msgid \"hh:mm\"\n#~ msgstr \"I<gg>B<:>I<mm>\"\n\n#, no-wrap\n#~ msgid \"(date will be set to today, seconds to 00)\"\n#~ msgstr \"(data będzie ustawiona na dziś, sekundy na 00)\"\n\n#, no-wrap\n#~ msgid \"now\"\n#~ msgstr \"B<now> (teraz)\"\n\n#, no-wrap\n#~ msgid \"yesterday\"\n#~ msgstr \"B<yesterday> (wczoraj)\"\n\n#, no-wrap\n#~ msgid \"(time is set to 00:00:00)\"\n#~ msgstr \"(czas jest ustawiany na 00:00:00)\"\n\n#, no-wrap\n#~ msgid \"today\"\n#~ msgstr \"B<today> (dziś)\"\n\n#, no-wrap\n#~ msgid \"tomorrow\"\n#~ msgstr \"B<tomorrow> (jutro)\"\n\n#, no-wrap\n#~ msgid \"+5min\"\n#~ msgstr \"B<+5min> (za 5 minut)\"\n\n#, no-wrap\n#~ msgid \"-5days\"\n#~ msgstr \"B<-5days> (5 dni temu)\"\n\n#~ msgid \"I</var/log/wtmp>, I</var/log/btmp>\"\n#~ msgstr \"I</var/log/wtmp>, I</var/log/btmp>\"\n\n#, no-wrap\n#~ msgid \"AUTHORS\"\n#~ msgstr \"AUTORZY\"\n\n#~ msgid \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n#~ msgstr \"B<login>(1), B<wtmp>(5), B<init>(8), B<shutdown>(8)\"\n\n#, no-wrap\n#~ msgid \"REPORTING BUGS\"\n#~ msgstr \"ZGŁASZANIE BŁĘDÓW\"\n\n#, no-wrap\n#~ msgid \"AVAILABILITY\"\n#~ msgstr \"DOSTĘPNOŚĆ\"\n\n#, no-wrap\n#~ msgid \"October 2013\"\n#~ msgstr \"październik 2013\"\n\n#, no-wrap\n#~ msgid \"util-linux\"\n#~ msgstr \"util-linux\"\n\n#, no-wrap\n#~ msgid \"B<-a>,B< --hostlast>\"\n#~ msgstr \"B<-a>,B< --hostlast>\"\n\n#~ msgid \"\"\n#~ \"Display the hostname in the last column.  Useful in combination with the \"\n#~ \"B<--dns> option.\"\n#~ msgstr \"\"\n#~ \"Wyświetla nazwę hosta w ostatniej kolumnie. Przydatne w połączeniu z \"\n#~ \"opcją B<--dns>.\"\n\n#, no-wrap\n#~ msgid \"B<-d>,B< --dns>\"\n#~ msgstr \"B<-d>,B< --dns>\"\n\n#~ msgid \"\"\n#~ \"For non-local logins, Linux stores not only the host name of the remote \"\n#~ \"host, but its IP number as well.  This option translates the IP number \"\n#~ \"back into a hostname.\"\n#~ msgstr \"\"\n#~ \"Dla logowań nie-lokalnych Linux przechowuje nie tylko nazwę zdalnego \"\n#~ \"hosta, ale i jego numer IP. Opcja ta przekłada numer IP z powrotem na \"\n#~ \"nazwę hosta.\"\n\n#, no-wrap\n#~ msgid \"B<-f>,B< --file >I<file>\"\n#~ msgstr \"B<-f>,B< --file >I<plik>\"\n\n#~ msgid \"\"\n#~ \"Tell B<last> to use a specific I<file> instead of I</var/log/wtmp>.  The \"\n#~ \"B<--file> option can be given multiple times, and all of the specified \"\n#~ \"files will be processed.\"\n#~ msgstr \"\"\n#~ \"B<last> użyje podanego I<pliku> zamiast I</var/log/wtmp>. Opcję B<--file> \"\n#~ \"można podać wiele razy i przetworzone będą wszystkie podane pliki.\"\n\n#, no-wrap\n#~ msgid \"B<-F>,B< --fulltimes>\"\n#~ msgstr \"B<-F>,B< --fulltimes>\"\n\n#, no-wrap\n#~ msgid \"B<-i>,B< --ip>\"\n#~ msgstr \"B<-i>,B< --ip>\"\n\n#~ msgid \"\"\n#~ \"Like B<--dns ,> but displays the host's IP number instead of the name.\"\n#~ msgstr \"Jak B<--dns>, lecz wyświetla numer IP zamiast nazwy komputera.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --limit >I<number>\"\n#~ msgstr \"B<-n>,B< --limit >I<liczba>\"\n\n#, no-wrap\n#~ msgid \"B<-p>,B< --present >I<time>\"\n#~ msgstr \"B<-p>,B< --present >I<czas>\"\n\n#~ msgid \"\"\n#~ \"Display the users who were present at the specified time.  This is like \"\n#~ \"using the options B<--since> and B<--until> together with the same \"\n#~ \"I<time>.\"\n#~ msgstr \"\"\n#~ \"Wyświetla użytkowników którzy byli obecni w podanym czasie. Jest to \"\n#~ \"podobne do użycia razem opcji B<--since> i B<--until> z takim samym \"\n#~ \"I<czasem>.\"\n\n#, no-wrap\n#~ msgid \"B<-R>,B< --nohostname>\"\n#~ msgstr \"B<-R>,B< --nohostname>\"\n\n#, no-wrap\n#~ msgid \"B<-s>,B< --since >I<time>\"\n#~ msgstr \"B<-s>,B< --since >I<czas>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --until >I<time>\"\n#~ msgstr \"B<-t>,B< --until >I<czas>\"\n\n#, no-wrap\n#~ msgid \"B<--time-format>I< format>\"\n#~ msgstr \"B<--time-format> I<format>\"\n\n#~ msgid \"\"\n#~ \"Define the output timestamp I<format> to be one of I<notime>, I<short>, \"\n#~ \"I<full>, or I<iso>.  The I<notime> variant will not print any timestamps \"\n#~ \"at all, I<short> is the default, and I<full> is the same as the B<--\"\n#~ \"fulltimes> option.  The I<iso> variant will display the timestamp in \"\n#~ \"ISO-8601 format.  The ISO format contains timezone information, making it \"\n#~ \"preferable when printouts are investigated outside of the system.\"\n#~ msgstr \"\"\n#~ \"Określa I<format> wyjściowy znaczników czasu na jeden z: B<notime>, \"\n#~ \"B<short>, B<full> lub B<iso>. Wariant B<notime> nie wypisze żadnych \"\n#~ \"znacznikóœ czasu, B<short> jest domyślny, a B<full> jest tym samym. co \"\n#~ \"opcja B<--fulltimes>. Wariant B<iso> wypisze znaczniki czasu w formacie \"\n#~ \"ISO-8601. Format ISO zawiera informacje o strefie czasowej, co czyni go \"\n#~ \"preferowanym, gdy wynik jest sprawdzany poza pierwotnym komputerem.\"\n\n#, no-wrap\n#~ msgid \"B<-w>,B< --fullnames>\"\n#~ msgstr \"B<-w>,B< --fullnames>\"\n\n#, no-wrap\n#~ msgid \"B<-x>,B< --system>\"\n#~ msgstr \"B<-x>,B< --system>\"\n\n#~ msgid \"\"\n#~ \"The files I<wtmp> and I<btmp> might not be found.  The system only logs \"\n#~ \"information in these files if they are present.  This is a local \"\n#~ \"configuration issue.  If you want the files to be used, they can be \"\n#~ \"created with a simple B<touch>(1)  command (for example, I<touch /var/log/\"\n#~ \"wtmp>).\"\n#~ msgstr \"\"\n#~ \"Mogą nie zostać odnalezione pliki I<wtmp> i I<btmp>. System rejestruje \"\n#~ \"informacje w tych plikach tylko wtedy, gdy istnieją. Wynika to z lokalnej \"\n#~ \"konfiguracji. Aby były one używane, można je utworzyć po prostu \"\n#~ \"poleceniem B<touch>(1) (na przykład, I<touch /var/log/wtmp>).\"\n\n#~ msgid \"\"\n#~ \"The last command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Polecenie last jest częścią pakietu util-linux i jest dostępne z E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Archiwum jądra Linux E<.UE .>\"\n\n#~ msgid \"mesg - display (or do not display) messages from other users\"\n#~ msgstr \"\"\n#~ \"mesg - wyświetla (lub nie wyświetla) wiadomości od innych użytkowników\"\n\n#, fuzzy\n#~| msgid \"B<mesg> [option] [B<n>|B<y>]\"\n#~ msgid \"B<mesg> [I<option>] [B<n>|B<y>]\"\n#~ msgstr \"B<mesg> [I<opcja>] [B<n>|B<y>]\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The B<mesg> utility is invoked by a user to control write access others \"\n#~| \"have to the terminal device associated with standard error output.  If \"\n#~| \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~| \"B<write>(1)  may display messages on the terminal.\"\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output. If \"\n#~ \"write access is allowed, then programs such as B<talk>(1) and B<write>(1) \"\n#~ \"may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"Narzędzie B<mesg> jest wywoływane przez użytkownika w celu kontroli \"\n#~ \"dostępu w trybie do zapisu jaki mają inni użytkownicy do urządzenia \"\n#~ \"terminala powiązanego ze standardowym wyjście błędów. Jeśli zezwolono na \"\n#~ \"dostęp w trybie do zapisu, to programy takie jak B<talk>(1) i B<write>(1) \"\n#~ \"mogą wyświetlać wiadomości na terminalu.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"Traditionally, write access is allowed by default.  However, as users \"\n#~| \"become more conscious of various security risks, there is a trend to \"\n#~| \"remove write access by default, at least for the primary login shell.  \"\n#~| \"To make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~| \"should be executed in your login scripts.\"\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default. However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell. To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"Tradycyjnie, dostęp w trybie do zapisu był domyślnie dozwolony. Z biegiem \"\n#~ \"czasu użytkownicy stali się jednak bardziej wyczuleni na kwestie \"\n#~ \"bezpieczeństwa, co spowodowało, że coraz części taki dostęp staje \"\n#~ \"się zabroniony, przynajmniej w powłoce logowania. Aby upewnić się, że \"\n#~ \"terminale mają pożądane ustawienie, powinno się wykonywać polecenie \"\n#~ \"B<mesg> w swoich skryptach logowania.\"\n\n#, no-wrap\n#~ msgid \"ARGUMENTS\"\n#~ msgstr \"ARGUMENTY\"\n\n#~ msgid \"Disallow messages.\"\n#~ msgstr \"Zabrania wiadomości.\"\n\n#~ msgid \"Allow messages to be displayed.\"\n#~ msgstr \"Zezwala na wyświetlanie wiadomości.\"\n\n#~ msgid \"B<-v>, B<--verbose>\"\n#~ msgstr \"B<-v>, B<--verbose>\"\n\n#~ msgid \"Explain what is being done.\"\n#~ msgstr \"Wypisuje bieżące działania.\"\n\n#, no-wrap\n#~ msgid \"B<-V>, B<--version>\"\n#~ msgstr \"B<-V>, B<--version>\"\n\n#~ msgid \"Display version information and exit.\"\n#~ msgstr \"Wyświetla informacje o wersji i kończy działanie.\"\n\n#, no-wrap\n#~ msgid \"B<-h>, B<--help>\"\n#~ msgstr \"B<-h>, B<--help>\"\n\n#~ msgid \"Display help text and exit.\"\n#~ msgstr \"Wyświetla ten tekst i kończy pracę.\"\n\n#~ msgid \"The B<mesg> utility exits with one of the following values:\"\n#~ msgstr \"Narzędzie B<mesg> kończy pracę z jedną z następujących wartości:\"\n\n#~ msgid \"Messages are allowed.\"\n#~ msgstr \"Wiadomości są dozwolone.\"\n\n#, no-wrap\n#~ msgid \"B<E<gt>1>\"\n#~ msgstr \"B<E<gt>1>\"\n\n#~ msgid \"An error has occurred.\"\n#~ msgstr \"Wystąpił błąd.\"\n\n#~ msgid \"I</dev/[pt]ty[pq]?>\"\n#~ msgstr \"I</dev/[pt]ty[pq]?>\"\n\n# All that section was initially translated by PB. Readded with minor corrections by MK. --MK\n#, no-wrap\n#~ msgid \"HISTORY\"\n#~ msgstr \"HISTORIA\"\n\n#~ msgid \"A B<mesg> command appeared in Version 6 AT&T UNIX.\"\n#~ msgstr \"Polecenie B<mesg> pojawiło się w wersji 6 AT&T UNIX.\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"The mesg command is part of the util-linux package and is available from \"\n#~| \"https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgid \"\"\n#~ \"The B<mesg> command is part of the util-linux package which can be \"\n#~ \"downloaded from\"\n#~ msgstr \"\"\n#~ \"Polecenie mesg jest częścią pakietu util-linux i jest dostępne pod \"\n#~ \"adresem https://www.kernel.org/pub/linux/utils/util-linux/.\"\n\n#, no-wrap\n#~ msgid \"July 2014\"\n#~ msgstr \"lipiec 2014\"\n\n#~ msgid \"\"\n#~ \"The B<mesg> utility is invoked by a user to control write access others \"\n#~ \"have to the terminal device associated with standard error output.  If \"\n#~ \"write access is allowed, then programs such as B<talk>(1)  and \"\n#~ \"B<write>(1)  may display messages on the terminal.\"\n#~ msgstr \"\"\n#~ \"Narzędzie B<mesg> jest wywoływane przez użytkownika w celu kontroli \"\n#~ \"dostępu w trybie do zapisu jaki mają inni użytkownicy do urządzenia \"\n#~ \"terminala powiązanego ze standardowym wyjście błędów. Jeśli zezwolono na \"\n#~ \"dostęp w trybie do zapisu, to programy takie jak B<talk>(1) i B<write>(1) \"\n#~ \"mogą wyświetlać wiadomości na terminalu.\"\n\n#~ msgid \"\"\n#~ \"Traditionally, write access is allowed by default.  However, as users \"\n#~ \"become more conscious of various security risks, there is a trend to \"\n#~ \"remove write access by default, at least for the primary login shell.  To \"\n#~ \"make sure your ttys are set the way you want them to be set, B<mesg> \"\n#~ \"should be executed in your login scripts.\"\n#~ msgstr \"\"\n#~ \"Tradycyjnie, dostęp w trybie do zapisu był domyślnie dozwolony. Z biegiem \"\n#~ \"czasu użytkownicy stali się jednak bardziej wyczuleni na kwestie \"\n#~ \"bezpieczeństwa, co spowodowało, że coraz części taki dostęp staje \"\n#~ \"się zabroniony, przynajmniej w powłoce logowania. Aby upewnić się, że \"\n#~ \"terminale mają pożądane ustawienie, powinno się wykonywać polecenie \"\n#~ \"B<mesg> w swoich skryptach logowania.\"\n\n#, no-wrap\n#~ msgid \"B<-v>,B< --verbose>\"\n#~ msgstr \"B<-v>,B< --verbose>\"\n\n#, no-wrap\n#~ msgid \"B<-V>,B< --version>\"\n#~ msgstr \"B<-V>,B< --version>\"\n\n#, no-wrap\n#~ msgid \"B<-h>,B< --help>\"\n#~ msgstr \"B<-h>,B< --help>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 0>\"\n#~ msgstr \"B<\\\\ 0>\"\n\n#, no-wrap\n#~ msgid \"B<\\\\ 1>\"\n#~ msgstr \"B<\\\\ 1>\"\n\n#~ msgid \"\"\n#~ \"The mesg command is part of the util-linux package and is available from \"\n#~ \"https://www.kernel.org/pub/linux/utils/util-linux/.\"\n#~ msgstr \"\"\n#~ \"Polecenie mesg jest częścią pakietu util-linux i jest dostępne pod \"\n#~ \"adresem https://www.kernel.org/pub/linux/utils/util-linux/.\"\n\n#, no-wrap\n#~ msgid \"runlevel\"\n#~ msgstr \"runlevel\"\n\n#, no-wrap\n#~ msgid \".T&\"\n#~ msgstr \".T&\"\n\n#, no-wrap\n#~ msgid \"l l\"\n#~ msgstr \"l l\"\n\n#, no-wrap\n#~ msgid \"l l.\"\n#~ msgstr \"l l.\"\n\n#, no-wrap\n#~ msgid \"0\"\n#~ msgstr \"0\"\n\n#, no-wrap\n#~ msgid \"poweroff\\\\&.target\"\n#~ msgstr \"poweroff\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"rescue\\\\&.target\"\n#~ msgstr \"rescue\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"2, 3, 4\"\n#~ msgstr \"2, 3, 4\"\n\n#, no-wrap\n#~ msgid \"multi-user\\\\&.target\"\n#~ msgstr \"multi-user\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"5\"\n#~ msgstr \"5\"\n\n#, no-wrap\n#~ msgid \"graphical\\\\&.target\"\n#~ msgstr \"graphical\\\\&.target\"\n\n#, no-wrap\n#~ msgid \"6\"\n#~ msgstr \"6\"\n\n#, no-wrap\n#~ msgid \"reboot\\\\&.target\"\n#~ msgstr \"reboot\\\\&.target\"\n\n#, fuzzy\n#~| msgid \"runlevel -- find the previous and current system runlevel.\"\n#~ msgid \"\"\n#~ \"B<runlevel> prints the previous and current SysV runlevel if they are \"\n#~ \"known\\\\&.\"\n#~ msgstr \"runlevel - odnajduje bieżący i poprzedni poziom pracy systemu\"\n\n#~ msgid \"I<$RUNLEVEL>\"\n#~ msgstr \"I<$RUNLEVEL>\"\n\n#~ msgid \"I<$PREVLEVEL>\"\n#~ msgstr \"I<$PREVLEVEL>\"\n\n#~ msgid \"/run/utmp\"\n#~ msgstr \"/run/utmp\"\n\n#, fuzzy\n#~| msgid \"runlevel -- find the previous and current system runlevel.\"\n#~ msgid \"\"\n#~ \"The utmp database B<runlevel> reads the previous and current runlevel from\"\n#~ \"\\\\&.\"\n#~ msgstr \"runlevel - odnajduje bieżący i poprzedni poziom pracy systemu\"\n\n#~ msgid \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemd.target>(5), B<systemctl>(1)\"\n\n#~ msgid \"B<-H>, B<--halt>\"\n#~ msgstr \"B<-H>, B<--halt>\"\n\n#~ msgid \"B<-P>, B<--poweroff>\"\n#~ msgstr \"B<-P>, B<--poweroff>\"\n\n#~ msgid \"B<-r>, B<--reboot>\"\n#~ msgstr \"B<-r>, B<--reboot>\"\n\n#~ msgid \"B<systemd>(1), B<systemctl>(1), B<halt>(8), B<wall>(1)\"\n#~ msgstr \"B<systemd>(1), B<systemctl>(1), B<halt>(8), B<wall>(1)\"\n\n#, fuzzy\n#~| msgid \"B<--shadow>\"\n#~ msgid \"B<--show>\"\n#~ msgstr \"B<--shadow>\"\n\n#, no-wrap\n#~ msgid \"System Administration\"\n#~ msgstr \"Administracja systemem\"\n\n#~ msgid \"B<sulogin> [options] [I<tty>]\"\n#~ msgstr \"B<sulogin> [I<opcje>] [I<tty>]\"\n\n#~ msgid \"\"\n#~ \"B<sulogin> is invoked by B<init> when the system goes into single-user \"\n#~ \"mode.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> jest przywoływany przez B<init>, gdy system przechodzi w tryb \"\n#~ \"jednoużytkownikowy.\"\n\n#, fuzzy\n#~| msgid \"Give root password for system maintenance\"\n#~ msgid \"\"\n#~ \"Give root password for system maintenance (or type Control-D for normal \"\n#~ \"startup):\"\n#~ msgstr \"\"\n#~ \"B<Give root password for system maintenance> (Podaj hasło roota do \"\n#~ \"konserwacji systemu)\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \"If the root account is locked and --force is specified, no password is \"\n#~| \"required.\"\n#~ msgid \"\"\n#~ \"If the root account is locked and B<--force> is specified, no password is \"\n#~ \"required.\"\n#~ msgstr \"\"\n#~ \"Gdy konto roota jest zablokowane, to powyższa zachęta nie jest \"\n#~ \"wyświetlana, a B<sulogin> zachowuje się tak, jakby podano prawidłowe \"\n#~ \"hasło roota.\"\n\n#, no-wrap\n#~ msgid \"B<-e>, B<--force>\"\n#~ msgstr \"B<-e>, B<--force>\"\n\n#~ msgid \"\"\n#~ \"If the default method of obtaining the root password from the system via \"\n#~ \"B<getpwnam>(3) fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~ \"get the password. If these files are damaged or nonexistent, or when root \"\n#~ \"account is locked by \\\\(aq!\\\\(aq or \\\\(aq*\\\\(aq at the begin of the \"\n#~ \"password then B<sulogin> will B<start a root shell without asking for a \"\n#~ \"password>.\"\n#~ msgstr \"\"\n#~ \"Jeśli domyślna metoda pozyskania hasła roota z systemu za pomocą \"\n#~ \"B<getpwnam>(3) nie powiedzie się, to sprawdzane są pliki I</etc/passwd> i \"\n#~ \"I</etc/shadow>. Jeśli są one uszkodzone lub nie istnieją lub gdy konto \"\n#~ \"roota jest zablokowane symbolem B<!> lub B<*> na początku hasła, to \"\n#~ \"B<sulogin wywoła powłokę roota bez pytania o hasło>.\"\n\n#, no-wrap\n#~ msgid \"B<-p>, B<--login-shell>\"\n#~ msgstr \"B<-p>, B<--login-shell>\"\n\n#~ msgid \"\"\n#~ \"Specifying this option causes B<sulogin> to start the shell process as a \"\n#~ \"login shell.\"\n#~ msgstr \"\"\n#~ \"Podanie ten opcji spowoduje, że B<sulogin> uruchomi proces powłoki jako \"\n#~ \"powłokę zgłoszeniową.\"\n\n#~ msgid \"B<-t>, B<--timeout> I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout> I<sekundy>\"\n\n#~ msgid \"\"\n#~ \"Specify the maximum amount of time to wait for user input. By default, \"\n#~ \"B<sulogin> will wait forever.\"\n#~ msgstr \"\"\n#~ \"Określa maksymalny czas oczekiwania na reakcję użytkownika. Domyślnie \"\n#~ \"B<sulogin> będzie czekał wiecznie.\"\n\n#~ msgid \"\"\n#~ \"B<sulogin> was written by Miquel van Smoorenburg for sysvinit and later \"\n#~ \"ported to util-linux by Dave Reisner and Karel Zak.\"\n#~ msgstr \"\"\n#~ \"B<sulogin> była napisane przez Miquela van Smoorenburga dla sysvinit i \"\n#~ \"później przeportowane dla util-linux przez Dave'a Reisnera i Karela Zaka.\"\n\n#~ msgid \"\"\n#~ \"If the root account is locked and --force is specified, no password is \"\n#~ \"required.\"\n#~ msgstr \"\"\n#~ \"Gdy konto roota jest zablokowane, to powyższa zachęta nie jest \"\n#~ \"wyświetlana, a B<sulogin> zachowuje się tak, jakby podano prawidłowe \"\n#~ \"hasło roota.\"\n\n#~ msgid \"\"\n#~ \"If the default method of obtaining the root password from the system via \"\n#~ \"B<getpwnam>(3)  fails, then examine I</etc/passwd> and I</etc/shadow> to \"\n#~ \"get the password.  If these files are damaged or nonexistent, or when \"\n#~ \"root account is locked by '!' or '*' at the begin of the password then \"\n#~ \"B<sulogin> will B<start a root shell without asking for a password>.\"\n#~ msgstr \"\"\n#~ \"Jeśli domyślna metoda pozyskania hasła roota z systemu za pomocą \"\n#~ \"B<getpwnam>(3) nie powiedzie się, to sprawdzane są pliki I</etc/passwd> i \"\n#~ \"I</etc/shadow>. Jeśli są one uszkodzone lub nie istnieją lub gdy konto \"\n#~ \"roota jest zablokowane symbolem B<!> lub B<*> na początku hasła, to \"\n#~ \"B<sulogin wywoła powłokę roota bez pytania o hasło>.\"\n\n#, no-wrap\n#~ msgid \"B<-t>, B<--timeout >I<seconds>\"\n#~ msgstr \"B<-t>, B<--timeout >I<sekundy>\"\n\n#~ msgid \"\"\n#~ \"Specify the maximum amount of time to wait for user input.  By default, \"\n#~ \"B<sulogin> will wait forever.\"\n#~ msgstr \"\"\n#~ \"Określa maksymalny czas oczekiwania na reakcję użytkownika. Domyślnie \"\n#~ \"B<sulogin> będzie czekał wiecznie.\"\n\n#~ msgid \"\"\n#~ \"The sulogin command is part of the util-linux package and is available \"\n#~ \"from E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-\"\n#~ \"linux/> Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Polecenie sulogin jest częścią pakietu util-linux i jest dostępne z E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Archiwum jądra Linux E<.UE .>\"\n\n#~ msgid \"\"\n#~ \"B<wall> [B<-n>] [B<-t> I<timeout>] [B<-g> I<group>] [I<message> | I<file>]\"\n#~ msgstr \"\"\n#~ \"B<wall> [B<-n>] [B<-t> I<czas >] [B<-g> I<grupa>] [I<wiadomość> | I<plik>]\"\n\n#~ msgid \"\"\n#~ \"B<wall> displays a I<message>, or the contents of a I<file>, or otherwise \"\n#~ \"its standard input, on the terminals of all currently logged in users. \"\n#~ \"The command will wrap lines that are longer than 79 characters. Short \"\n#~ \"lines are whitespace padded to have 79 characters. The command will \"\n#~ \"always put a carriage return and new line at the end of each line.\"\n#~ msgstr \"\"\n#~ \"B<wall> wyświetla I<wiadomość>, zawartość I<pliku> lub jego wejście \"\n#~ \"standardowe na terminalach wszystkich obecnie zalogowanych użytkowników. \"\n#~ \"Komenda zawinie tekst linii dłuższych niż 79 znaków. Krótsze linie są \"\n#~ \"wypełnione znakami białymi do długości 79 znaków. Komenda zawsze umieści \"\n#~ \"symbole powrotu karetki oraz nowej linii na końcu każdej linii.\"\n\n#~ msgid \"\"\n#~ \"Only the superuser can write on the terminals of users who have chosen to \"\n#~ \"deny messages or are using a program which automatically denies messages.\"\n#~ msgstr \"\"\n#~ \"Jedynie administrator może wysyłać wiadomości na terminale użytkowników, \"\n#~ \"którzy zdecydowali się nie wyrazić zgody na otrzymywanie komunikatów lub \"\n#~ \"używają programu automatycznie odrzucającego wiadomości.\"\n\n#~ msgid \"\"\n#~ \"Reading from a I<file> is refused when the invoker is not superuser and \"\n#~ \"the program is set-user-ID or set-group-ID.\"\n#~ msgstr \"\"\n#~ \"Czytanie z I<pliku> nie jest możliwe, jeśli wywołujący polecenie nie jest \"\n#~ \"administratorem, ani program nie korzysta z suid lub sgid.\"\n\n#~ msgid \"B<-n>, B<--nobanner>\"\n#~ msgstr \"B<-n>, B<--nobanner>\"\n\n#~ msgid \"Suppress the banner.\"\n#~ msgstr \"Nie wyświetla nagłówka.\"\n\n#~ msgid \"B<-t>, B<--timeout> I<timeout>\"\n#~ msgstr \"B<-t>, B<--timeout> I<czas>\"\n\n#~ msgid \"\"\n#~ \"Abandon the write attempt to the terminals after I<timeout> seconds. This \"\n#~ \"I<timeout> must be a positive integer. The default value is 300 seconds, \"\n#~ \"which is a legacy from the time when people ran terminals over modem \"\n#~ \"lines.\"\n#~ msgstr \"\"\n#~ \"Porzuca próbę wypisania na terminale po I<czasie> w sekundach. Wartość \"\n#~ \"I<czas> musi być dodatnią liczbą całkowitą. Domyślną wartością jest 300 \"\n#~ \"sekund, która jest spuścizną po czasach gdy używano terminali przez \"\n#~ \"połączenie modemowe.\"\n\n#~ msgid \"B<-g>, B<--group> I<group>\"\n#~ msgstr \"B<-g>, B<--group> I<grupa>\"\n\n#~ msgid \"\"\n#~ \"Limit printing message to members of group defined as a I<group> \"\n#~ \"argument. The argument can be group name or GID.\"\n#~ msgstr \"\"\n#~ \"Ogranicza wypisywanie wiadomości do członków grupy określonej w \"\n#~ \"argumencie I<grupa>. Argument może być nazwą grupy lub GID.\"\n\n#~ msgid \"\"\n#~ \"Some sessions, such as B<wdm>(1x), that have in the beginning of \"\n#~ \"B<utmp>(5) ut_type data a \\\\(aq:\\\\(aq character will not get the message \"\n#~ \"from B<wall>. This is done to avoid write errors.\"\n#~ msgstr \"\"\n#~ \"Niektóre sesje, takie jak B<wdm>(1x), które mają na początku danych \"\n#~ \"ut_type B<utmp>(5) znak ':' nie otrzymają wiadomości od B<wall>. Dzieje \"\n#~ \"się tak by uniknąć błędów pisowni.\"\n\n#~ msgid \"A B<wall> command appeared in Version 7 AT&T UNIX.\"\n#~ msgstr \"Polecenie B<wall> pojawiło się w 7 wersji UNIXa AT&T.\"\n\n#, no-wrap\n#~ msgid \"August 2013\"\n#~ msgstr \"sierpień 2013\"\n\n#~ msgid \"\"\n#~ \"B<wall> displays a I<message>, or the contents of a I<file>, or otherwise \"\n#~ \"its standard input, on the terminals of all currently logged in users.  \"\n#~ \"The command will wrap lines that are longer than 79 characters.  Short \"\n#~ \"lines are whitespace padded to have 79 characters.  The command will \"\n#~ \"always put a carriage return and new line at the end of each line.\"\n#~ msgstr \"\"\n#~ \"B<wall> wyświetla I<wiadomość>, zawartość I<pliku> lub jego wejście \"\n#~ \"standardowe na terminalach wszystkich obecnie zalogowanych użytkowników. \"\n#~ \"Komenda zawinie tekst linii dłuższych niż 79 znaków. Krótsze linie są \"\n#~ \"wypełnione znakami białymi do długości 79 znaków. Komenda zawsze umieści \"\n#~ \"symbole powrotu karetki oraz nowej linii na końcu każdej linii.\"\n\n#, no-wrap\n#~ msgid \"B<-n>,B< --nobanner>\"\n#~ msgstr \"B<-n>,B< --nobanner>\"\n\n#, no-wrap\n#~ msgid \"B<-t>,B< --timeout >I<timeout>\"\n#~ msgstr \"B<-t>,B< --timeout >I<czas>\"\n\n#~ msgid \"\"\n#~ \"Abandon the write attempt to the terminals after I<timeout> seconds.  \"\n#~ \"This I<timeout> must be a positive integer.  The default value is 300 \"\n#~ \"seconds, which is a legacy from the time when people ran terminals over \"\n#~ \"modem lines.\"\n#~ msgstr \"\"\n#~ \"Porzuca próbę wypisania na terminale po I<czasie> w sekundach. Wartość \"\n#~ \"I<czas> musi być dodatnią liczbą całkowitą. Domyślną wartością jest 300 \"\n#~ \"sekund, która jest spuścizną po czasach gdy używano terminali przez \"\n#~ \"połączenie modemowe.\"\n\n#, no-wrap\n#~ msgid \"B<-g>,B< --group >I<group>\"\n#~ msgstr \"B<-g>,B< --group >I<grupa>\"\n\n#~ msgid \"\"\n#~ \"Limit printing message to members of group defined as a I<group> \"\n#~ \"argument.  The argument can be group name or GID.\"\n#~ msgstr \"\"\n#~ \"Ogranicza wypisywanie wiadomości do członków grupy określonej w \"\n#~ \"argumencie I<grupa>. Argument może być nazwą grupy lub GID.\"\n\n#~ msgid \"\"\n#~ \"Some sessions, such as wdm, that have in the beginning of B<utmp>(5)  \"\n#~ \"ut_type data a ':' character will not get the message from B<wall>.  This \"\n#~ \"is done to avoid write errors.\"\n#~ msgstr \"\"\n#~ \"Niektóre sesje, takie jak wdm, które mają na początku danych ut_type \"\n#~ \"B<utmp>(5) znak ':' nie otrzymają wiadomości od B<wall>. Dzieje się tak \"\n#~ \"by uniknąć błędów pisowni.\"\n\n#~ msgid \"\"\n#~ \"The wall command is part of the util-linux package and is available from \"\n#~ \"E<.UR https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> \"\n#~ \"Linux Kernel Archive E<.UE .>\"\n#~ msgstr \"\"\n#~ \"Polecenie wall jest częścią pakietu util-linux i jest dostępne pod E<.UR \"\n#~ \"https://\\\\:www.kernel.org\\\\:/pub\\\\:/linux\\\\:/utils\\\\:/util-linux/> Linux \"\n#~ \"Kernel Archive E<.UE .>\"\n"
  },
  {
    "path": "man/po/po4a.cfg",
    "content": "[po_directory] ./\n\n[type:man] ../bootlogd.8      $lang:$lang/bootlogd.8\n[type:man] ../fstab-decode.8  $lang:$lang/fstab-decode.8\n[type:man] ../halt.8          $lang:$lang/halt.8\n[type:man] ../init.8          $lang:$lang/init.8\n[type:man] ../initctl.5       $lang:$lang/initctl.5\n[type:man] ../initscript.5    $lang:$lang/initscript.5\n[type:man] ../inittab.5       $lang:$lang/inittab.5\n[type:man] ../killall5.8      $lang:$lang/killall5.8\n[type:man] ../last.1          $lang:$lang/last.1\n[type:man] ../logsave.8       $lang:$lang/logsave.8\n[type:man] ../mesg.1          $lang:$lang/mesg.1\n[type:man] ../mountpoint.1    $lang:$lang/mountpoint.1\n[type:man] ../pidof.8         $lang:$lang/pidof.8\n[type:man] ../readbootlog.1   $lang:$lang/readbootlog.1\n[type:man] ../runlevel.8      $lang:$lang/runlevel.8\n[type:man] ../shutdown.8      $lang:$lang/shutdown.8\n[type:man] ../sulogin.8       $lang:$lang/sulogin.8\n[type:man] ../utmpdump.1      $lang:$lang/utmpdump.1\n[type:man] ../wall.1          $lang:$lang/wall.1\n"
  },
  {
    "path": "man/po/pt.po",
    "content": "# Translation of sysvinit MANPAGE to European Portuguese\n#\n# Copyright (C) 2022 Free Software Foundation, Inc.\n# This file is distributed under the same license as the sysvinit package.\n#\n# Américo Monteiro <a_monteiro@gmx.com>, 2022 - 2023.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit \\n\"\n\"Report-Msgid-Bugs-To: Jesse <jsmith@resonatingmedia.com>\\n\"\n\"POT-Creation-Date: 2023-01-05 21:14+0000\\n\"\n\"PO-Revision-Date: 2023-01-05 21:34+0000\\n\"\n\"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\\n\"\n\"Language-Team: Portuguese <>\\n\"\n\"Language: pt\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Lokalize 20.12.0\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"BOOTLOGD\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"21 Julho, 2003\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, no-wrap\n#| msgid \"B<sysinit>\"\nmsgid \"sysvinit \"\nmsgstr \"sysvinit \"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"Manual de Administrador de Sistema Linux\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"NOME\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"bootlogd - regista mensagens de arranque\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"RESUMO\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< >B<-\"\n\"l>I< logfile >] [I< >B<-p>I< pidfile >]\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIÇÃO\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the I</dev/\"\n\"console> device to a logfile. If the I<logfile> is not accessible, the \"\n\"messages will be kept in memory until it is.\"\nmsgstr \"\"\n\"B<bootlogd> corre em segundo plano e copia todas as strings enviadas para o \"\n\"dispositivo I</dev/console> para um ficheiro de registo. Se o I<logfile> não \"\n\"estiver acessível, as mensagens serão mantidas em memória até que esteja.\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"OPÇÕES\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"B<-d>\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"Não se bifurca e corre nos bastidores.\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"B<-e>\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\"Escreve caracteres de escape no ficheiro de registo do arranque. Isto \"\n\"desliga a filtragem do caracteres de escape e permite que ferramentas como o \"\n\"B<less>(1) do GNU vejam e usem caracteres de controlo de cores (mostram o \"\n\"registo a cores).\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"B<-c>\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\"Tenta escrever para o logfile mesmo que este não exista ainda. Sem esta \"\n\"opção, o B<bootlogd> irá esperar que o logfile apareça antes de tentar \"\n\"escrever nele. Este comportamento previne o B<bootlogd> de criar logfiles \"\n\"debaixo de pontos de montagem.\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"B<-r>\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\"Se existir um logfile chamado I<logfile> renomeia-o para I<logfile~> a menos \"\n\"que I<logfile~> já exista.\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"B<-s>\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\"Assegura que os dados são escritos no ficheiro após cada linha ao chamar \"\n\"B<fdatasync>(3).  Isto irá abrandar um processo B<fsck>(8) a correr em \"\n\"paralelo.\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"Mostra a versão.\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, no-wrap\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"B<-l> I<logfile>\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"Regista para este logfile. A predefinição é I</var/log/boot>.\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, no-wrap\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"B<-p> I<pidfile>\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"Coloca id de processo neste ficheiro. A predefinição é nenhum pidfile.\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"NOTAS\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\"O B<bootlogd> salva dados de registo que incluem caracteres de controle. O \"\n\"registo é tecnicamente um ficheiro de texto, mas não muito fácil para \"\n\"humanos lerem. Para resolver isto pode ser usado o comando B<readbootlog>(1) \"\n\"para mostrar o registo de arranque sem os caracteres de controle.\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"BUGS\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\"O B<bootlogd> funciona ao redirecionar os resultados da consola a partir do \"\n\"dispositivo de consola. (Como consequência o B<bootlogd> requer suporte PTY \"\n\"na configuração do kernel.) Ele copia esses resultados para o dispositivo de \"\n\"consola real e para um ficheiro de registo (log). Não existe um modo \"\n\"standard de determinar o dispositivo de consola real se você tiver um \"\n\"dispositivo I</dev/console> ao estilo novo (maior 5, menor 1)  assim o \"\n\"B<bootlogd> analisa a linha de comandos do kernel à procura de linhas \"\n\"B<console=...> e deduz o dispositivo de consola real a partir daí. Se essa \"\n\"sintaxe for alguma vez modificada pelo kernel, ou se for usado um tipo de \"\n\"consola que o B<bootlogd> não conhece, então o B<bootlogd> não irá funcionar.\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"AUTOR\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"VEJA TAMBÉM\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"FSTAB-DECODE\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"Maio 2006\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"fstab-decode - corre um comando com argumentos codificados a fstab\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"B<fstab-decode> I<COMANDO> [I<ARGUMENTO>]...\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\"B<fstab-decode> descodifica escapes (tais como caracteres de nova-linha e \"\n\"outros espaços em branco)  nos I<ARGUMENTO>s especificados e usa-os para \"\n\"correr o I<COMANDO>. O escapamento de argumentos usa as mesmas regras que o \"\n\"escapamento de caminho em I</etc/fstab>, I</etc/mtab> e I</proc/mtab>.\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\"Essencialmente o B<fstab-decode> pode ser usado a qualquer altura que \"\n\"queremos passar vários parâmetros a um comando como uma lista de argumentos \"\n\"de linha de comandos. Transforma resultados como estes:\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\"Numa longa lista de parâmetros, \\\"/root /mnt/remote-disk /home\\\". Isto\\n\"\n\"pode ser útil quando se tenta trabalhar com vários sistemas de ficheiros\\n\"\n\"duma vez. Por exemplo, podemos usa-lo para desmontar várias partilhas NFS.\\n\"\n\"Este programa também remove os espaços em branco e outros caracteres que\\n\"\n\"podem causar falhas em programas como B<mount>(8) ou B<umount>(8).\\n\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"ESTADO DE SAÍDA\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\"O B<fstab-decode> termina com estado 127 se o I<COMANDO> não puder ser \"\n\"corrido. Caso contrário, termina com o estado retornado pelo I<COMANDO>.\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"EXEMPLOS\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\"O seguinte exemplo lê I<fstab>, encontra todas as instâncias de sistemas de \"\n\"ficheiros VFAT e escreve os seus pontos de montagem (argumento 2 no ficheiro \"\n\"I<fstab>).  O B<fstab-decode> depois corre o programa especificado, \"\n\"B<umount>(8), e passa-lhe a lista de pontos de montagem VFAT. Isto desmonta \"\n\"todas as partições VFAT.\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"\"\n\"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq]\"\n\" /etc/fstab)>\\n\"\nmsgstr \"\"\n\"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq]\"\n\" /etc/fstab)>\\n\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"B<fstab>(5)\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"HALT\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"6 Novembro, 2001\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"halt, reboot, poweroff - param o sistema\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file I</var/log/\"\n\"wtmp>, and then either tells the kernel to halt, reboot or power-off the \"\n\"system.\"\nmsgstr \"\"\n\"O B<halt> nota que o sistema está a ser arreado no ficheiro I</var/log/\"\n\"wtmp>, e depois diz ao kernel para ou o parar, reiniciar ou desligar o \"\n\"sistema.\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\"Se B<halt> ou B<reboot> forem chamados quando o sistema I<não> está em \"\n\"runlevel B<0> ou B<6>, por outras palavras, quando está a correr \"\n\"normalmente, então é invocado o B<shutdown> (com a bandeira B<-h> ou B<-r>). \"\n\"Para mais informação veja o manual do B<shutdown>(8).\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\"O resto deste manual descreve o comportamento nos níveis de execução \"\n\"(runlevels) 0 e 6, que é quando os scripts de desligar o sistema correm.\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"B<-n>\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\"Não sincroniza antes de reiniciar ou parar. Note que o kernel e as drivers \"\n\"de armazenamento podem ainda sincronizar. Isto implica B<-d>.\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"B<-w>\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the I</var/\"\n\"log/wtmp> file).\"\nmsgstr \"\"\n\"Não reinicia nem pára na realidade mas apenas escreve o registo wtmp (no \"\n\"ficheiro I</var/log/wtmp>).\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"Não escreve o registo wtmp.\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"B<-f>\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"Força halt ou reboot, não chama o B<shutdown>(8).\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"B<-i>\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\"Desliga todas as interfaces de rede mesmo antes de B<halt> ou B<reboot>. \"\n\"Aviso: Isto pode não funcionar em interfaces que não têm um endereço IP e \"\n\"idealmente devem ser geridas por um serviço de gestão de rede.\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"B<-h>\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or power-\"\n\"off.\"\nmsgstr \"\"\n\"Põe todos os discos rijos do sistema em modo de espera antes de parar ou \"\n\"desligar a energia.\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"B<-p>\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\"Quando parar o sistema, desliga a energia. Esta é a predefinição quando \"\n\"B<halt> é chamado como B<poweroff>.\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"DIAGNÓSTICO\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"\"\n\"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\"Se você não for o super-utilizador, irá receber a mensagem `must be \"\n\"superuser'.\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\"Sob lançamentos antigos do B<sysvinit>, B<reboot> e B<halt> nunca devem ser \"\n\"chamados directamente. A partir do lançamento 2.74 o B<halt> e B<reboot> \"\n\"invocam B<shutdown>(8) se o sistema não estiver no runlevel 0 ou 6. Isto \"\n\"significa que se B<halt> ou B<reboot> não conseguirem descobrir o runlevel \"\n\"actual (por exemplo, quando o I</var/run/utmp> não foi inicializado \"\n\"corretamente e I</var/run/runlevel> não existir) será chamado B<shutdown>, o \"\n\"que pode não ser o que você deseja. Use a bandeira B<-f> se desejar fazer um \"\n\"B<halt> ou B<reboot> forçado.\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or power-\"\n\"off. Right now this is only implemented for IDE drives. A side effect of \"\n\"putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\"A bandeira B<-h> põe todos os discos rijos em modo de espera logo antes de \"\n\"para ou desligar. Neste momento isto é apenas implementado para dispositivos \"\n\"IDE. Um efeito secundário de por a drive em modo de espera é que a cache de \"\n\"escrita no disco é despejada. Isto é importante para drives IDE, pois o \"\n\"kernel não despeja ele próprio a cache de escrita antes do desligar.\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\"O programa B<halt> usa I</proc/ide/hd*> para encontrar todos os dispositivos \"\n\"de disco IDE, o que significa que I</proc> precisa de estar montado quando o \"\n\"B<halt> ou B<poweroff> são chamados ou o switch B<-h> não fará nada.\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8)\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"INIT\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"29 Julho 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"init, telinit - inicialização do controle de processos\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\nmsgstr \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss >]\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"B</sbin/init> [B< --version >]\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"B</sbin/telinit> [ B<-t> I<SEGUNDOS> ] [B< 0123456sSQqabcUu >]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"Init\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\"B<init> É o pai de todos os processos. O seu papel principal é criar \"\n\"processos a partir de um script guardado no ficheiro I</etc/inittab> (veja \"\n\"B<inittab>(5)).  Este ficheiro geralmente tem entradas que fazem o B<init> \"\n\"gerar B<getty>s em cada linha que os utilizadores podem registar. Também \"\n\"controla processos autónomos requeridos por qualquer sistema particular.\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"RUNLEVELS (NÍVEIS DE EXECUÇÃO)\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\"Um I<runlevel> é uma configuração de software do sistema que apenas permite \"\n\"que um grupo selecionado de processos exista. Os processos gerados pelo \"\n\"B<init> para cada um destes níveis de execução estão definidos no ficheiro \"\n\"I</etc/inittab>. B<init> pode estar em um de oito runlevels: B<0\\\\(en6> e \"\n\"B<S> (também conhecido por B<s>).  O runlevel é modificado ao ter um \"\n\"utilizador privilegiado a correr B<telinit>, o qual envia sinais apropriados \"\n\"para o B<init>, a dizer-lhe para qual runlevel deve comutar.\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\"Os runlevels B<S>, B<0>, B<1>, e B<6> são reservados. O runlevel S é  usado \"\n\"para inicializar o sistema no arranque. Quando se arranca o runlevel S (no \"\n\"arranque)  ou runlevel 1 (comutar de um runlevel de multi-utilizador) o \"\n\"sistema entra em \\\"modo de único-utilizador\\\", após o qual o runlevel actual \"\n\"é S. O runlevel 0 é usado para parar o sistema; o runlevel 6 é usado para \"\n\"reiniciar o sistema.\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the multi-\"\n\"user runlevels 2 through 5, unless there was some problem that needs to be \"\n\"fixed by the administrator in single-user mode.  Normally after entering \"\n\"single-user mode the administrator performs maintenance and then reboots the \"\n\"system.\"\nmsgstr \"\"\n\"Após arrancar através de S o sistema entra automaticamente em um dos \"\n\"runlevels de multi-utilizador 2 a 5, a menos que existam problemas que \"\n\"precisem de ser corrigidos pelo administrador em modo de único-utilizador. \"\n\"Normalmente após entrar em modo de único-utilizador o administrador executa \"\n\"manutenção e depois reinicia o sistema.\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"\"\n\"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\"Para mais informação, veja os manuais de B<shutdown>(8) e B<inittab>(5).\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\"Os runlevels 7-9 são também válidos, apesar de não estarem realmente \"\n\"documentados. Isto porque as variantes UNIX \\\"tradicionais\\\" não os usam.\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\"Os runlevels I<S> e I<s> são o mesmo. Internamente são nomes alternativos \"\n\"para o mesmo runlevel.\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"ARRANCAR\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no I</etc/\"\n\"inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\"Após o B<init> ser invocado como último passo da sequência de arranque do \"\n\"kernel, este procura o ficheiro I</etc/inittab> para ver se existe uma \"\n\"entrada do tipo B<initdefault> (veja B<inittab>(5)). A entrada \"\n\"B<initdefault> determina o runlevel inicial do sistema. Se não existir tal \"\n\"entrada (ou não existir o I</etc/inittab>), tem de ser inserido um runlevel \"\n\"na consola do sistema.\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an I</etc/\"\n\"inittab> file.\"\nmsgstr \"\"\n\"O runlevel B<S> ou B<s> inicializa o sistema e não requer um ficheiro I</etc/\"\n\"inittab>.\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\"Em modo de único utilizador, B</sbin/sulogin> é invocado em I</dev/console>.\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\"Quando entra em modo de único utilizador, o B<init> inicializa as definições \"\n\"B<stty> da consola para valores sãos. O modo local é definido. A velocidade \"\n\"do hardware e o handshaking não são alterados.\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\"Quando entra em modo multi-utilizador pela primeira vez, o B<init> executa \"\n\"as entradas B<boot> e B<bootwait> para permitir que os sistemas de ficheiros \"\n\"sejam montados antes dos utilizadores fazerem login.  Depois todas as \"\n\"entradas que correspondem ao runlevel são processadas.\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file I</etc/\"\n\"initscript> exists. If it does, it uses this script to start the process.\"\nmsgstr \"\"\n\"Quando arranca um novo processo, o B<init> primeiro verifica se o ficheiro \"\n\"I</etc/initscript> existe. Se existir, usa este script para arrancar o \"\n\"processo.\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\"De cada vez que um filho termina, o B<init> regista o facto e a razão de \"\n\"este ter terminado em I</var/run/utmp> e I</var/log/wtmp>, desde que estes \"\n\"ficheiros existam.\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"MODIFICAR OS RUNLEVELS\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\"Após ter gerado todos os processos especificados, o B<init> espera que um \"\n\"dos seus processos descendentes termine, por um sinal de falha de energia, \"\n\"ou até ser sinalizado pelo B<telinit> para mudar o runlevel do sistema. \"\n\"Quando uma das três condições de cima ocorre, ele re-examina o ficheiro I</\"\n\"etc/inittab>. Novas entradas podem ser adicionadas a este ficheiro a \"\n\"qualquer altura. No entanto, o B<init> ainda espera que uma das três \"\n\"condições de cima ocorra. Para fornecer uma resposta imediata, o comando \"\n\"B<telinit Q> ou B<q> pode acordar o B<init> para re-examinar (recarregar) o \"\n\"ficheiro I</etc/inittab>.\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\"Se o B<init> não estiver em modo de único utilizador e receber um sinal de \"\n\"falha de energia (SIGPWR), ele lê o ficheiro I</etc/powerstatus>. Depois ele \"\n\"arranca um comando com base no conteúdo deste ficheiro.\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"F(AIL)\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\"A energia está a falhar, a UPS está a fornecer a energia. Executa as \"\n\"entradas B<powerwait> e B<powerfail>.\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"O(K)\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"A energia foi restaurada, executa as entradas B<powerokwait>.\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"L(OW)\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\"A energia está a falhar e a UPS tem pouca bateria. Executa as entradas \"\n\"B<powerfailnow>.\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\"Se I</etc/powerstatus> não existir ou conter nada mais do que as letras \"\n\"B<F>, B<O> ou B<L>, o B<init> irá comportar-se como se tivesse lido a letra \"\n\"B<F>.\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\"A utilização de B<SIGPWR> e I</etc/powerstatus> está desencorajada. Alguém \"\n\"que queira interagir com o B<init> deve usar o canal de controle I</run/\"\n\"initctl> - veja o manual B<initctl>(5) para mais documentação sobre isto.\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\"Quando o B<init> é requerido para mudar o runlevel, eles envia o sinal de \"\n\"aviso B<SIGTERM> a todos os processos que não estão definidos no novo \"\n\"runlevel. Depois espera 3 segundos antes de terminar à força estes processos \"\n\"via sinal B<SIGKILL>. Note que o B<init> assume que todos estes processos (e \"\n\"os seus descendentes) permanecem no mesmo grupo de processos no qual o \"\n\"B<init> originalmente criou para eles. Se qualquer processo modificou a sua \"\n\"afiliação de grupo de processo não irá receber estes sinais. Tais processos \"\n\"precisam de ser terminados em separado.\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"TELINIT\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\"B</sbin/telinit> está vinculado a B</sbin/init>.  Recebe um argumento de um \"\n\"caractere e faz sinal ao B<init> para executar a acção apropriada. Os \"\n\"seguintes argumentos servem como directivas para o B<telinit>:\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> ou B<6>\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"diz ao B<init> para comutar para o nível de execução especificado.\"\n\n#. type: IP\n#: ../init.8:172\n#, no-wrap\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"B<a>, B<b>, B<c>\"\n\n#. type: Plain text\n#: ../init.8:175\n#| msgid \"\"\n#| \"tell B<init> to process only those B</etc/inittab> file entries having \"\n#| \"runlevel B<a>,B<b> or B<c>.\"\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\"diz ao B<init> para processar apenas aquelas entradas no ficheiro \"\n\"B</etc/inittab> que têm runlevel B<a>,B<b> ou B<c>.\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"B<Q> ou B<q>\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"diz ao B<init> para re-examinar o ficheiro I</etc/inittab>.\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"B<S> ou B<s>\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"diz ao B<init> para comutar para modo de único utilizador.\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"B<U> ou B<u>\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\"diz ao B<init> para se re-executar a ele próprio (preservando o estado). Não \"\n\"acontece o re-examinar do ficheiro I</etc/inittab>. O runlevel deve ser um \"\n\"de B<Ss0123456> caso contrário o pedido será ignorado em silêncio.\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\"O B<telinit> pode dizer ao B<init> quanto tempo deve esperar entre enviar \"\n\"aos processos os sinais B<SIGTERM> e B<SIGKILL>. A predefinição é 3 \"\n\"segundos, mas isto pode ser mudado com a opção B<-t>.\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\"O B<telinit -e> diz ao B<init> para mudar o ambiente para os processos que \"\n\"ele gera. O argumento de B<-e> ou está no formato de I<VAR>=I<VAL> o qual \"\n\"define a variável I<VAR> para o valor I<VAL>, ou no formato I<VAR> (sem o \"\n\"sinal de igual) o qual remove a definição da variável I<VAR>.\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\"O B<telinit> só pode ser invocado por utilizadores com privilégios \"\n\"apropriados.\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\"O binário B<init> verifica se é o B<init> ou o B<telinit> ao olhar para o \"\n\"seu I<process id>; o id do verdadeiro processo do B<init> é sempre B<1>. A \"\n\"partir conclui que em vez de se chamar o B<telinit> pode-se simplesmente \"\n\"usar o B<init> como um atalho.\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"AMBIENTE\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\"O B<Init> define as seguintes variáveis de ambiente para todos os seus \"\n\"filhos:\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"B<PATH>\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"B<INIT_VERSION>\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from B<init>.\"\nmsgstr \"\"\n\"Como o nome diz. Útil para determinar se um script corre directamente a \"\n\"partir do B<init>.\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"B<RUNLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"O actual nível de execução do sistema.\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"B<PREVLEVEL>\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"O runlevel anterior (útil após uma mudança de runlevel).\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"B<CONSOLE>\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\"A consola do sistema. Isto é realmente herdado do kernel; no entanto se não \"\n\"for definido o B<init> irá defini-lo para I</dev/console> por predefinição.\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"BOOTFLAGS\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\"É possível passar um número de bandeiras ao B<init> a partir do monitor de \"\n\"arranque (ex. LILO ou GRUB). O B<init> aceita as seguintes bandeiras:\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"B<-s, S, single>\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\"Arranque em modo de único utilizador. Neste modo o I</etc/inittab> é \"\n\"examinado e os scripts rc de arranque são geralmente corridos antes da shell \"\n\"de modo de único utilizador ser arrancada.\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"B<1-5>\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"O runlevel para o qual arrancar.\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"B<-b, emergency>\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\"Arranca directamente para shell de único utilizador sem correr quaisquer \"\n\"scripts de arranque.\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"B<-a, auto>\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \\\"yes\\\". \"\n\"Note that you cannot use this for any security measures - of course the user \"\n\"could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\"O boot loader LILO adiciona a palavra \\\"auto\\\" à linha de comandos se \"\n\"arrancar o kernel com alinha de comandos predefinida (sem intervenção do \"\n\"utilizador). Se isto for encontrado o B<init> define a variável de ambiente \"\n\"\\\"AUTOBOOT\\\" para \\\"yes\\\". Note que você não pode usar isto para nenhuma \"\n\"medida de segurança - é claro que o utilizador podia especificar \\\"auto\\\" ou \"\n\"B<-a> na linha de comandos manualmente.\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"B<-z >I<xxx>\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\"O argumento para B<-z> é ignorado. Você pode usar isto para expandir um \"\n\"pouco a linha de comandos, para que tenha mais algum espaço na pilha. O \"\n\"B<init> pode então manipular a linha de comandos para que B<ps>(1) mostre o \"\n\"runlevel actual.\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\"Este argumento, quando usado por si só, mostra a versão actual do B<init> na \"\n\"consola/stdout. É uma maneira rápida de determinar qual software e versão do \"\n\"B<init> está a ser usado. Após a informação de versão ser mostrada, o \"\n\"B<init> termina imediatamente com um código de retorno de zero.\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"INTERFACE\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\"O B<init> escuta num I<fifo> em /dev, I</run/initctl>, por mensagens. O \"\n\"B<Telinit> usa isto para comunicar com B<init>. A interface não está bem \"\n\"documentada nem acabada. Aqueles interessados devem estudar o ficheiro \"\n\"I<initreq.h> no sub-directório I<src/> do arquivo tar do código fonte do \"\n\"B<init>.\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"SINAIS\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"O Init reage a vários sinais:\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"B<SIGHUP>\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"Tem o mesmo efeito que B<telinit q>.\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"B<SIGUSR1>\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, B</\"\n\"run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\"Na receção destes sinais, o B<init> fecha e re-abre o seu fifo de controle, \"\n\"B</run/initctl>. Útil para scripts de arranque quando I</dev> é remontado.\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"B<SIGUSR2>\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\"Quando o B<init> recebe B<SIGUSR2>, o B<init> fecha e deixa o fifo de \"\n\"controle, B</run/initctl>, fechado. Isto pode ser usado para certificar que \"\n\"o B<init> não está a segurar nenhuns ficheiros abertos. No entanto, também \"\n\"previne o B<init> de mudar os runlevels. O que significa que comandos como o \"\n\"shutdown não funcionam mais. O fifo pode ser re-aberto ao enviar ao B<init> \"\n\"o sinal B<SIGUSR1>.\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"B<SIGINT>\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\"Normalmente o kernel envia este sinal ao B<init> quando CTRL-ALT-DEL é \"\n\"pressionado. Activa a acção I<ctrlaltdel>.\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"B<SIGWINCH>\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\"O kernel envia este sinal quando a tecla I<KeyboardSignal> é pressionada. \"\n\"Activa a acção I<kbrequest>.\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"CONFORMIDADE COM\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\"O B<init> é compatível com o init do System V. Funcionam muito próximos com \"\n\"os scripts nos directórios I</etc/init.d> e I</etc/rc{runlevel}.d>. Se o seu \"\n\"sistema usa esta convenção, deverá existir um ficheiro I<README> no \"\n\"directório I</etc/init.d> a explicar como estes scripts trabalham.\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"FICHEIROS\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"AVISOS\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\"O B<init> assume que os processos e os descendentes dos processos permanecem \"\n\"no mesmo grupo de processos que foi originalmente criado para eles. Se os \"\n\"processos mudarem o seu grupo, o B<init> não consegue mata-los e você pode \"\n\"acabar com dois processos a ler a partir de uma linha de terminal.\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\"Num sistema Debian, entrar no runlevel 1 faz com que todos os processos \"\n\"sejam mortos excepto para tópicos de kernel e o script que faz a matança e \"\n\"outros processos na sua sessão. Como consequência disto, não é seguro \"\n\"retornar de runlevel 1 para um runlevel de multi-utilizador: os daemons que \"\n\"foram arrancados no runlevel S e são precisos para o funcionamento normal \"\n\"não estão mais a correr. O sistema deve ser reiniciado.\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\"Se o B<init> descobrir que está continuamente a renascer uma entrada mais de \"\n\"10 vezes em 2 minutos,irá assumir que existe um erro na string de comando, \"\n\"gerar uma mensagem de erro na consola do sistema, e recusar o renascer desta \"\n\"entrada até que ou tenham passado 5 minutos ou tenha recebido um sinal. Isto \"\n\"previne de comer os recursos do sistema quando alguém comete um erro \"\n\"tipográfico no ficheiro I</etc/inittab> ou o programa para a entrada foi \"\n\"removido.\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"INITCTL\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"13 Abril, 2018\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"Formatos de Ficheiro\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"\"\n\"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\"initctl - /run/initctl é um pipe nomeado que passa comandos ao init do SysV\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"/run/initctl\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at I</\"\n\"run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\"Este documento descreve o canal de comunicação definido pelo SysV B<init> em \"\n\"I</run/initctl>. Este pipe nomeado permite a programas com as permissões \"\n\"apropriadas (tipicamente os programas corridos pelo root têm acesso de \"\n\"leitura-escrita ao pipe) enviarem sinais ao programa B<init> (PID 1).\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\"O manual do B<init> tem, até recentemente, simplesmente dito que as pessoas \"\n\"que desejam perceber como enviar mensagens ao B<init> devem ler o código \"\n\"fonte do programa init, mas isso não é geralmente prático.\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\"As mensagens enviadas para o pipe para falar com o B<init> têm de ter um \"\n\"formato especial. Este formato está definido como uma estrutura C e a parte \"\n\"técnica é apresentada aqui:\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\"Vamos avançar pela estrutura de init_request uma linha de cada vez. A \"\n\"primeira variável, o número \\\"mágico\\\" tem de ser do valor 0x03091969.  O \"\n\"program B<init> então sabe que apenas programas com acesso de root que \"\n\"enviam este número mágico estão autorizados a comunicar com o init.\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\"A variável I<cmd> é um valor na gama de 0-8 (actualmente). Esta variável \"\n\"I<cmd> diz ao init o que queremos fazer. Aqui estão as opções possíveis:\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"1 - Define o runlevel actual, especificado pela variável runlevel.\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"\"\n\"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\"2 - A energia vai falhar em breve (provavelmente bateria fraca), prepara \"\n\"para desligar.\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"3 - A energia está a falhar, desligar imediatamente.\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"4 - A energia está OK, cancelar o desligar.\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\"6 - Define uma variável de ambiente a um valor a ser especificado na\\n\"\n\"    variável I<data> com esta estrutura.\\n\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\"Podem ser adicionadas outras opções I<cmd> ao B<init> mais tarde. Por \"\n\"exemplo, os valores de comando 0, 5 e 7 estão definidos mas actualmente não \"\n\"implementados.\"\n\n#. type: Plain text\n#: ../initctl.5:80\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"\"\n\"A variável I<runlevel> irá especificar o runlevel para se mudar para (0-6).\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\"A variável I<sleeptime> é usada quando queremos dizer ao B<init> para mudar \"\n\"o tempo de espera entre enviar B<SIGTERM> e B<SIGKILL> durante o processo de \"\n\"encerramento. Ainda não está implementado alterar isto durante a execução.\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\"A variável I<data> (na união) pode ser usada para passar dados diversos que \"\n\"o init pode precisar para processar o nosso pedido. Por exemplo, quando se \"\n\"definem variáveis de ambiente.\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\"Quando se define uma variável de ambiente através do pipe I</run/initctl> do \"\n\"B<init>, a variável data deve ter o formato I<VARIÁVEL>=I<VALOR>. A string \"\n\"deve ser terminada com um caractere NULL.\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\"O seguinte exemplo de código C mostra como enviar um pedido de definição de \"\n\"variável de ambiente ao processo B<init> usando o pipe I</run/initctl>. Este \"\n\"exemplo está simplificado e salta a verificação de erros. Um exemplo mais \"\n\"complexo pode ser encontrado na função B<init_setnv>() do programa shutdown.\"\n\"c.\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\nmsgstr \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init */\\n\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write */\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe */\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\"Normalmente o pipe I</run/initctl> seria apenas usado por programas de baixo-\"\n\"nível para pedir um encerramento relacionado com energia ou para mudar o \"\n\"runlevel, como o B<telinit> faria. Na maioria do tempo não há necessidade de \"\n\"falar com o B<init> diretamente, mas isto dá-nos uma aproximação extensiva \"\n\"de que o B<init> pode ser ensinado a aprender mais comandos.\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\"Os comandos passados pelo canal I</run/initctl> têm de ser enviados num \"\n\"formato binário específico e ter um tamanho específico. Estruturas de dados \"\n\"maiores ou que não usem o formato apropriado serão ignoradas. Tipicamente, \"\n\"apenas o root tem a habilidade de escrever no pipe initctl por razões de \"\n\"segurança.\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\"O canal I</run/initctl> pode ser fechado ao se enviar ao init (PID 1) o \"\n\"sinal B<SIGUSR2>. Isto fecha o pipe e deixa-o fechado. Isto pode ser útil \"\n\"para certificar que o B<init> não deixa ficheiros abertos. No entanto, \"\n\"quando o pipe está fechado, o B<init> não recebe mais sinais, tais como \"\n\"aqueles enviados pelo B<shutdown>(8) ou B<telinit>(8). Por outras palavras, \"\n\"se fecharmos o canal, o B<init> não pode o seu runlevel diretamente. O canal \"\n\"pode ser reaberto ao enviar ao B<init> (PID 1)  o sinal B<SIGUSR1>.\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\"Se o canal I</run/initctl> estiver fechado então ainda deve ser possível \"\n\"desligar o sistema usando a bandeira B<-n> do comando B<shutdown>(8), mas \"\n\"isto nem sempre é limpo e não é recomendado.\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"/run/initctl /sbin/init\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"B<init>(8)\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"INITSCRIPT\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"10 Julho, 2003\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"initscript - script que executa comandos do inittab.\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"/bin/sh /etc/initscript id runlevels action process\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\"Quando o script de shell I</etc/initscript> está presente, o B<init> irá usa-\"\n\"lo para executar os comandos de I<inittab>.  Este script pode ser usado para \"\n\"definir coisas como os valores predefinidos de I<ulimit> e I<umask> para \"\n\"qualquer processo.\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as I</\"\n\"etc/initscript.sample>.\"\nmsgstr \"\"\n\"Este é um initscript exemplo, que pode estar instalado no seu sistema em I</\"\n\"etc/initscript.sample>.\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt\"\n\">actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> E<lt\"\n\">actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\"  # Define umask para nível seguro, e activa despejos do núcleo.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\"  # Aumenta o limite rijo de descritor de ficheiro para todos os processos\\n\"\n\"  # para 8192.  O limite suave é ainda 1024, mas qualquer processo não\\n\"\n\"  # privilegiado pode aumentar o seu limite suave até ao limite rijo\\n\"\n\"  # com \\\"ulimit -Sn xxx\\\" (precisa dum kernel Linux 2.2.13 ou posterior).\\n\"\n\"  ulimit -Hn 8192\\n\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\"  # Executa o programa.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\n\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\"Este script não se destina a ser script de arranque para daemons ou \"\n\"serviços. Não tem nada a ver com um script de estilo I<rc.local>. É apenas \"\n\"para manusear coisas executadas a partir de B</etc/inittab>. Fazer \"\n\"experiências com isto pode tornar o seu sistema não (re)inicializável.\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"/etc/inittab, /etc/initscript.\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"B<inittab>(5), B<init>(8)\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"INITTAB\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"4 Dezembro, 2001\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init process\"\nmsgstr \"\"\n\"inittab - formato do ficheiro inittab usando pelo processo init compatível \"\n\"com sysv\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\"O ficheiro B<inittab> descreve quais processos são iniciados no arranque e \"\n\"durante a operação normal (ex. \\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  O B<init>(8)  distingue múltiplos I<runlevels>, cada um dos \"\n\"quais pode ter o seu próprio conjunto de processos que é arrancado. Os \"\n\"runlevels válidos são B<0>-B<6> mais B<A>, B<B>, e B<C> para entradas \"\n\"B<ondemand>.  Uma entrada no ficheiro B<inittab> tem o seguinte formato:\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"I<id>:I<runlevels>:I<action>:I<process>\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"As linhas que começam com `#' são ignoradas.\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"I<id>\"\n\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\"é uma sequência única de 1-4 caracteres que identifica uma entrada em \"\n\"B<inittab> (para versões do sysvinit compiladas com a I<antiga> libc5 (E<lt> \"\n\"5.2.18) ou bibliotecas a.out o limite é de 2 caracteres).\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\"Nota: tradicionalmente, para o getty e outros processos de login, este valor \"\n\"do campo I<id> é mantido no mesmo que o sufixo do tty correspondente, ex. \"\n\"\\\\& B<1> para B<tty1>. Alguns programas antigos de contabilidade de login \"\n\"podem esperar isto, apesar de não me lembrar de nenhum.\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"I<runlevels>\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"lista os runlevels para os quais a acção especificada deve ser tomada.\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"I<action>\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"descreve qual a acção que deve ser tomada.\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"I<process>\"\n\n#. type: Plain text\n#: ../inittab.5:70\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a `\"\n\"+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\"especifica o processo a ser executado. Se o campo de processo começar com um \"\n\"caractere `+', o B<init> não irá contabilizar tmp e wtmp para esse processo. \"\n\"Isto é preciso para gettys que insistem em fazer a sua própria limpeza utmp/\"\n\"wtmp. Isto é também um bug histórico. O comprimento deste campo está \"\n\"limitado a 127 caracteres.\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\"Por favor note que incluir certos caracteres no campo de processo irá \"\n\"resultar no B<init> a tentar lançar uma shell para interpretar o comando \"\n\"contido no campo de processo. Os caracteres que pode despoletar uma shell \"\n\"são: B<~`!$^&*()=|\\\\{}[];>\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\"Em sistemas que não tenham uma shell para ser lançada ou quais não se deseja \"\n\"usar uma shell para interpretar o campo do processo, o campo de processo \"\n\"pode ser prefixado com o símbolo @. O @ irá ser ignorado e tudo o que se \"\n\"segue será tratado como o comando a ser lançado, literalmente, pelo \"\n\"serviço B<init>.\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\"Em casos que ambos sinais + e @ vão ser usados (para desligar os relatórios \"\n\"e interpretação da shell) coloque o sinal + antes do símbolo @. Ambas \"\n\"bandeiras irão ser lidadas e depois tudo o que se segue ao @ irá ser lidado \"\n\"pelo B<init>\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\"O campo I<runlevels> pode conter vários caracteres para diferentes \"\n\"runlevels. Por exemplo, B<123> especifica que o processo deve ser iniciado \"\n\"nos runlevels 1, 2, e 3. Os I<runlevels> para entradas B<ondemand> podem \"\n\"conter um B<A>, B<B>, ou B<C>. O campo I<runlevels> das entradas B<sysinit>, \"\n\"B<boot>, e B<bootwait> é ignorado.\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\"Quando o runlevel do sistema é mudado, quaisquer processos a correr que não \"\n\"estão especificados para o novo runlevel são mortos, primeiro com \"\n\"\\\\s-2SIGTERM\\\\s0, e depois com \\\\s-2SIGKILL\\\\s0.\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"As acções válidas para o campo I<action> são:\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"B<respawn>\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"O processo será reiniciado sempre que termine (ex. \\\\& getty).\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"B<wait>\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\"O processo irá ser iniciado assim que se entra no runlevel especificado e o \"\n\"B<init> irá esperar pelo seu término.\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"B<once>\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"\"\n\"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\"O processo irá ser executado uma vez quando se entra no runlevel \"\n\"especificado.\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"B<boot>\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\"O processo será executado durante o arranque do sistema. O campo \"\n\"I<runlevels> é ignorado.\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"B<bootwait>\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"O processo será executado durante o arranque do sistema, enquanto B<init> \"\n\"espera pelo seu término (ex. \\\\& /etc/rc). O campo I<runlevels> é ignorado.\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"B<off>\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"Isto não faz nada.\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"B<ondemand>\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\"Um processo marcado com um runlevel B<ondemand> será executado sempre que o \"\n\"runlevel B<ondemand> especificado é chamado. No entanto, nenhuma mudança de \"\n\"runlevel irá ocorrer (os runlevels B<ondemand> são `a', `b', e `c').\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"B<initdefault>\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\"Uma entrada B<initdefault> especifica o runlevel em que se deve entrar após \"\n\"o arranque do sistema. Se não existir nenhum, o B<init> irá pedir um \"\n\"runlevel na consola. O campo I<process> é ignorado.\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"B<sysinit>\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\"O processo será executado durante o arranque do sistema. Será executado \"\n\"antes de qualquer entrada B<boot> ou B< bootwait>.  O campo I<runlevels> é \"\n\"ignorado.\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"B<powerwait>\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\"O processo será executado quando a energia vai abaixo. O B<init> é \"\n\"geralmente informado disto por um processo que fala com uma UPS ligada ao \"\n\"computador. O B<init> irá esperar que o processo termine antes de continuar.\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"B<powerfail>\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\"Como para B<powerwait>, excepto que o B<init> não espera pelo final do \"\n\"processo.\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"B<powerokwait>\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\"Este processo será executado assim que o B<init> é informado que a energia \"\n\"foi restaurada.\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"B<powerfailnow>\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\"Este processo será executado quando é dito ao B<init> que a bateria da UPS \"\n\"externa está quase vazia e a energia está a falhar (desde que a UPS externa \"\n\"e o processo de monitorização sejam capazes de detectar esta condição).\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"B<ctrlaltdel>\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the B<CTRL-ALT-\"\n\"DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\"O processo será executado quando o B<init> receber o sinal B<SIGINT>. Isto \"\n\"significa que alguém na consola do sistema pressionou a combinação de teclas \"\n\"B<CTRL-ALT-DEL>. Tipicamente alguém quer executar alguma espécie de \"\n\"B<shutdown> seja para ir para nível de único-utilizador ou para reiniciar a \"\n\"máquina.\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"B<kbrequest>\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\"O processo será executado quando o B<init> receber um sinal a partir do \"\n\"manipulador do teclado que uma combinação especial de teclas foi pressionada \"\n\"no teclado da consola.\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\"A documentação para esta função ainda não está completa; pode ser encontrada \"\n\"mais informação nos pacotes kbd-x.xx (o mais recente foi kbd-0.94 na altura \"\n\"que isto foi escrito). Basicamente você deseja mapear alguma combinação do \"\n\"teclado para a acção \\\"KeyboardSignal\\\". Por exemplo, para mapear Alt-\"\n\"SetaCima para este objectivo use o seguinte no seu ficheiro keymaps:\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"alt keycode 103 = KeyboardSignal\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\"Isto é um exemplo de uma inittab que é semelhante à inittab antiga do Linux:\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on tty1-\"\n\"tty4.\"\nmsgstr \"\"\n\"Este ficheiro inittab executa I</etc/rc> durante o arranque e inicia gettys \"\n\"em tty1-tty4.\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\"Uma B<inittab> mais elaborada com diferentes runlevels (veja os comentários \"\n\"no interior):\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\"# Nível para onde correr\\n\"\n\"id:2:initdefault:\\n\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\"# Script de configuração/inicialização do sistema durante o arranque.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\"# O que fazer em modo de único-utilizador.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\"# /etc/init.d executa os scripts S e K na comutação\\n\"\n\"# do runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 é parar.\\n\"\n\"# Runlevel 1 é único-utilizador.\\n\"\n\"# Runlevels 2-5 são multi-utilizador.\\n\"\n\"# Runlevel 6 é reiniciar.\\n\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\"# O que fazer na \\\"saudação dos 3 dedos\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"/etc/inittab\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT lederer@\\\\:\"\n\"francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> and \"\n\"modified by E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\"B<init> foi escrito por E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> Este manual foi escrito por E<.MT lederer@\\\\:francium\"\n\"\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer E<.ME> e modificado por \"\n\"E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> Michael Haardt E<.\"\n\"ME .>\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"B<init>(8), B<telinit>(8)\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"KILLALL5\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"4 Novembro 2003\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"killall5 - envia um sinal a todos os processos\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\"B<killall5> é o comando B<killall> do SystemV. Envia um sinal a todos os \"\n\"processos excepto tópicos do kernel e aos processos da sua própria sessão, \"\n\"assim não mata a shell que está a correr o script de onde foi chamado. O seu \"\n\"uso principal (e único) está nos scripts B<rc> encontrados no directório I</\"\n\"etc/init.d>.\"\n\n#. type: IP\n#: ../killall5.8:35\n#, no-wrap\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"B<-o> I<omitpid>\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"Diz ao B<killall5> para omitir processos com esse id de processo.\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\"O B<killall5> também pode ser invocado como B<pidof>(8), o que é \"\n\"simplesmente um link (simbólico) para o programa B<killall5>.\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\"O programa retorna zero se matou processos. Retorna 2 se nenhum processo foi \"\n\"morto, e 1 se foi incapaz de encontrar quaisquer processos (I</proc/> em \"\n\"falta).\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"LAST,\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"31 Julho, 2004\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"\"\n\"last, lastb - mostra listagem dos últimos utilizadores que fizeram login\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> I<file\\\\/\"\n\">] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> \"\n\"I<ficheiro\\\\/>] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<nome...>] [I<tty...>]\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] [B<-\"\n\"adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<ficheiro\\\\/>] [B<-\"\n\"adFiowx>] [I<nome...>] [I<tty...>]\"\n\n#. type: Plain text\n#: ../last.1:56\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\"B<Last> procura para trás no ficheiro B</var/log/wtmp> (ou no ficheiro \"\n\"designado pela bandeira B<-f>) e mostra uma lista de todos os utilizadores \"\n\"que fizeram login (e logout) desde que esse ficheiro foi criado. Podem ser \"\n\"dados nomes de utilizadores e tty's, que neste caso o B<last> irá apenas \"\n\"mostrar aquelas entradas que correspondem aos argumentos. Os nomes dos ttys \"\n\"podem ser abreviados, assim B<last 0> é o mesmo que B<last tty0>.\"\n\n#. type: Plain text\n#: ../last.1:61\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\"Quando o B<last> apanha um sinal B<SIGINT> (gerado pela tecla de \"\n\"interrupção, normalmente control-C) ou um sinal B<SIGQUIT> (gerado pela \"\n\"tecla de desistir, geralmente control-\\\\e), o B<last> irá mostrar até onde \"\n\"pesquisou no ficheiro; no caso do sinal B<SIGINT> o B<last> irá depois \"\n\"terminar.\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was created.\"\nmsgstr \"\"\n\"O pseudo utilizador B<reboot> faz login cada vez que o sistema é reiniciado. \"\n\"Assim B<last reboot> irá mostrar um registo de todas as vezes que o sistema \"\n\"reiniciou desde que o ficheiro de registo foi criado.\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\"B<lastb> é o mesmo que B<last>, excepto que por predefinição mostra um \"\n\"registo do ficheiro B</var/log/btmp>, que contém todas as tentativas \"\n\"falhadas de login.\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"B<-f> I<ficheiro>\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\"Diz ao B<last> para usar um ficheiro especifico em vez de I</var/log/wtmp>.\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"B<->I<num>\"\n\n#. type: Plain text\n#: ../last.1:75\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"Isto é uma contagem que diz ao B<last> quantas linhas deve mostrar.\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"B<-n> I<num>\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"O mesmo.\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"B<-t> I<YYYYMMDDHHMMSS>\"\n\n#. type: Plain text\n#: ../last.1:82\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\"Mostra o estados dos logins da hora especificada. Isto é útil, ex. para \"\n\"determinar facilmente quem tinha login aberto numa hora particular -- \"\n\"especifique essa hora com B<-t> e procura por \\\"ainda com login aberto\\\".\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"B<-R>\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"Suprime o amostrar do campo hostname.\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"B<-a>\"\n\n#. type: Plain text\n#: ../last.1:87\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\"Mostra o hostname na última coluna. Útil em combinação com a próxima \"\n\"bandeira.\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\"Para os logins não locais, o Linux guarda não apenas o nome da máquina da \"\n\"máquina remota mas também o seu número IP. Esta opção traduz o número IP de \"\n\"volta para um hostname.\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"B<-F>\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"Escreve as horas e datas de todos os login e logout.\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\"Esta opção é como B<-d> em que mostra o número IP da máquina remota, mas \"\n\"mostra o número IP em notação de números e pontos.\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"B<-l>\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\"Esta opção permite a mostragem de nomes de utilizadores maiores que 8 \"\n\"caracteres. Isto pode estragar a formatação em alguns programas e tornar os \"\n\"resultados mais largos que o standard de 80 caracteres.\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"B<-o>\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\"Lê um ficheiro wtmp de tipo antigo (escrito por aplicações de linux-libc5).\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"Mostra nomes completos de utilizador e domínio no resultado.\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\"Mostra entradas de encerramento do sistema e mudanças de nível de execução.\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\"Os ficheiros I<wtmp> e I<btmp> podem não existir. O sistema apenas regista \"\n\"informação nestes ficheiros se eles estiverem presentes. Isto é um problema \"\n\"de configuração local. Se você deseja que estes ficheiros sejam usados, eles \"\n\"podem ser criados com um simples comando B<touch>(1) (por exemplo, B<touch /\"\n\"var/log/wtmp>).\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"/var/log/wtmp\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"/var/log/btmp\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"B<shutdown>(8), B<login>(1), B<init>(8)\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"LOGSAVE\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"logsave - salva o resultado de um comando num ficheiro de registo\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\"O programa B<logsave> irá executar I<cmd_prog> com os argumentos \"\n\"especificados, e guardar uma cópia do seu resultado no I<logfile>. Se o \"\n\"directório para conter o I<logfile> não existir, o B<logsave> irá acumular o \"\n\"resultado em memória até que possa ser escrito. Uma cópia do resultado \"\n\"também será escrita na saída standard.\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\"Se I<cmd_prog> for um único hífen ('-'), então em vez de executar um \"\n\"programa, o B<logsave> irá tomar a sua entrada a partir da entrada standard \"\n\"e guarda-la no I<logfile>.\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\"O B<logsave> é útil para salvar o resultado dos scripts de arranque inicial \"\n\"até que a partição I</var> seja montada, para que o resultado seja gravado \"\n\"em I</var/log>.\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\"Esta opção irá fazer com que o resultado seja acrescentado ao I<logfile>, em \"\n\"vez de substituir o seu conteúdo actual.\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\"Esta opção fará com que o B<logsave> salte escrever no ficheiro de registo o \"\n\"texto que está envolto com um control-A (ASCII 001 ou Inicio de Cabeçalho) e \"\n\"control-B (ASCII 002 ou Inicio de Texto). Isto permite que a informação da \"\n\"barra de progresso esteja visível par ao utilizador, e não ser escrita no \"\n\"ficheiro de registo.\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\"Esta opção fará com que o B<logsave> seja mais detalhado no seu resultado \"\n\"para o utilizador.\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"B<fsck>(8)\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"MESG\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"26 Fevereiro, 2001\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"Comandos de Utilizador\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"mesg - controla o acesso de escrita ao seu terminal\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"B<mesg> [B<y>|B<n>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see B<write>(1)).\"\nmsgstr \"\"\n\"B<mesg> controla o acesso ao seu terminal por outros. É tipicamente usado \"\n\"para permitir ou proibir que outros utilizadores escrevam no seu terminal \"\n\"(veja B<write>(1)).\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"B<y>\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"Permite acesso de escrita ao seu terminal.\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"B<n>\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"Retira permissão de acesso de escrita ao seu terminal.\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\"Se não for dada nenhuma opção, o B<mesg> escreve o estado de acesso actual \"\n\"do seu terminal.\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\"O B<mesg> assume que a sua entrada standard está ligada ao seu terminal. \"\n\"Isso também significa que se você tiver vários logins abertos, você pode \"\n\"obter/definir o estado do mesg de outras sessões ao usar redirecionamento. \"\n\"Por exemplo, \\\"mesg n E<lt> /dev/pts/46\\\".\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"B<talk>(1), B<write>(1), B<wall>(1)\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"PONTO DE MONTA\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"15 Março, 2004\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"mountpoint - vê se um directório é um ponto de montagem\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"B<mountpoint> [B<-q>] [B<-d>] I</caminho/para/directório>\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"B<mountpoint> B<-x> I</dev/dispositivo>\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"B<mountpoint> verifica se um directório é um ponto de montagem.\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"Fica calado - não escreve nada.\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\"Escreve o número de dispositivo maior/menor do sistema de ficheiros no \"\n\"stdout.\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"\"\n\"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\"Verifica o ficheiro I</proc/mounts> do Linux para tentar detectar pontos de \"\n\"montagem circulares.\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\"Escreve o número de dispositivo maior/menor do dispositivo de bloco no \"\n\"stdout.\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"Zero se o directório for um ponto de montagem, não-zero se não for.\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\"Os links simbólicos não são seguidos, excepto quando a opção B<-x> é usada. \"\n\"Para forçar o seguimento dos links simbólicos, adicione uma barra \\\"/\\\" no \"\n\"final do caminho do directório.\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\"O nome do comando é enganoso quando a opção B<-x> é usada, mas a opção é \"\n\"útil para comparar se um directório e um dispositivo correspondem, e não há \"\n\"mais nenhum outro comando que consiga escrever a informação com facilidade.\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\"O comando mountpoint falha quando um directório é cego por um dos seus avôs. \"\n\"Por exemplo, se /a/b/c/d for um ponto de montagem para /a/b então o \"\n\"mountpoint irá reportar que /a/b/c/d não é um ponto de montagem válido. Isto \"\n\"deve-se a que ambos o directório original e o seu novo ponto de montagem \"\n\"partilham o mesmo inode e número de dispositivo.\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\"O problema de montagem circular pode ser contornado em sistemas Linux ao \"\n\"usar a bandeira B<-p> para verificar no ficheiro I</proc/mounts> por \"\n\"referências a vínculo de montagem circular. Quando se usar a bandeira B<-p>, \"\n\"certifique de especificar o caminho completo (isto é, I</home/user/mp> e não \"\n\"apenas I<mp>). Também, o B<mountpoint> pode ainda falhar se existirem \"\n\"espaços no caminho dos pontos de montagem, mesmo usando a bandeira B<-p> \"\n\"devido ao modo que o B</proc/mounts> lida com os espaços no nome do caminho. \"\n\"Claro que, se o administrador está a usar pontos de montagem circulares com \"\n\"espaços no nome, existem grandes preocupações.\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"B<stat>(1)\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"PIDOF\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"1 Setembro 1998\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"pidof - encontra o ID de processo de um programa a correr\"\n\n#. type: Plain text\n#: ../pidof.8:36\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<program> \"\n\"[I<program...>]\"\nmsgstr \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> I<omitpid[,\"\n\"omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] I<programa> \"\n\"[I<programa...>]\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\"O B<pidof> encontra os id's de processos (PIDs) dos programas nomeados. \"\n\"Escreve esses id's na saída standard. Este programa é usado em alguns \"\n\"sistemas em scripts de mudança de nível de execução, especialmente quando o \"\n\"sistema tem uma estrutura I<rc> tipo I<System-V>. Nesse caso estes scripts \"\n\"estão localizados em I</etc/rc?.d>, onde ? é o runlevel. Se o sistema tem um \"\n\"programa B<start-stop-daemon>(8) deve ser esse o usado em vez disto.\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"Single shot - isto instruí o programa a apenas retornar um I<pid>.\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\"Apenas retorna PIDs de processos que estão a correr no mesmo directório \"\n\"raiz. Esta opção é ignorada para utilizadores não-root, pois seria incapaz \"\n\"de verificar o directório raiz actual dos processos que não possui.\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\"Evita chamar a função de sistema B<stat>(2) em todos os binários que estão \"\n\"localizados em sistemas de ficheiros baseados em rede como B<NFS>. Em vez de \"\n\"usar esta opção a variável B<PIDOF_NETFS> pode ser definida e exportada.\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\"Não mostra os PIDs correspondentes na saída standard. Simplesmente termina \"\n\"com um estado de verdadeiro ou falso para indicar se foi encontrado um PID \"\n\"correspondente.\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\"Scripts too - isto faz o programa também retornar id's de processos de \"\n\"shells que correm nos strings nomeados.\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"B<-z>\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\"Tenta detectar processos que estão presos em estado zombie (Z). Normalmente \"\n\"estes processos são saltados pois tentar lidar com eles causa ao pidof ou a \"\n\"ferramentas relacionadas ficarem paradas. Nota: No passado o pidof iria \"\n\"ignorar processos no estado ininterrupto (D), a menos que a bandeira B<-z> \"\n\"fosse especificada. Este não é mais o caso. O program B<pidof> irá encontrar \"\n\"e reportar processos no estado D quer B<-z> seja especificada ou não.\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"-d I<sep>\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\"Diz ao I<pidof> para usar I<sep> como um separador de resultados se for \"\n\"mostrado mais do que um PID. O separador predefinido é um espaço.\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"-o I<omitpid>\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid B<\"\n\"%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\"Diz ao I<pidof> para omitir processos com esse id de processo. O pid \"\n\"especial B<%PPID> pode ser usado para nomear o processo pai do programa \"\n\"B<pidof>, por outras palavras, a shell ou script de shell que o chama.\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"B<0>\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"Pelo menos um programa foi encontrado com o nome requisitado.\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"B<1>\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"Nenhum programa foi encontrado com o nome requisitado.\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\"I<pidof> é na realidade o mesmo programa que B<killall5>(8); o programa \"\n\"comporta-se de acordo com o nome pelo qual é chamado.\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\"Quando o B<pidof> é invocado com um nome de caminho completo para o programa \"\n\"que deve encontrar o pid, é razoavelmente seguro. Caso contrário,  é \"\n\"possível que retorne PIDs de programas a correr que tenham o mesmo nome que \"\n\"o programa que procura mas sejam na realidade outros programas. Note que o \"\n\"nome executável dos processos que correm é calculado com B<readlink>(2), \"\n\"assim os links simbólicos para executáveis também podem corresponder.\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\"Os processos zombie ou processos em disco adormecido (estados Z e D, \"\n\"respetivamente) são ignorados, pois as tentativas de aceder às estatísticas \"\n\"destes irá algumas vezes falhar. A bandeira B<-z> (veja em cima) diz ao \"\n\"B<pidof> para tentar detectar estes processos adormecidos e zombie, com o \"\n\"risco de falhar ou ficar pendurado.\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"READBOOTLOG\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"12 Novembro, 2018\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\"readbootlog - mostra o conteúdo do registo de arranque, retirando os \"\n\"caracteres de controlo.\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"B<readbootlog> [B<-h>] [-B<f> I<ficheiro\\\\/>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default I</var/log/\"\n\"boot>). The program strips away control characters and non-human readable \"\n\"contents from the log file. Output is dumped to the terminal where it can be \"\n\"piped or redirected to a file.\"\nmsgstr \"\"\n\"B<readbootlog> é uma ferramenta para ler o registo de arranque (por \"\n\"predefinição I</var/log/boot>). Este programa retira os caracteres de \"\n\"controlo e conteúdos não legíveis por humanos do ficheiro de registo. O \"\n\"resultado é despejado para o terminal onde pode ser canalizado ou \"\n\"redirecionado para um ficheiro.\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"\"\n\"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\"Diz ao B<readbootlog> para usar um ficheiro especifico em vez de I</var/log/\"\n\"boot>.\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"Mostra uma mensagem de ajuda breve.\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"/var/log/boot\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"B<bootlogd>(8)\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"RUNLEVEL\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"27 Maio, 1997\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"runlevel - encontra o runlevel anterior e actual do sistema\"\n\n#. type: Plain text\n#: ../runlevel.8:24\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"B<runlevel> [I<utmp>]\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\"O B<runlevel> lê o ficheiro I<utmp> do sistema (tipicamente I</var/run/\"\n\"utmp>) para localizar o registo do runlevel, e depois escreve o runlevel \"\n\"anterior e actual do sistema na sua saída standard, separados por um espaço \"\n\"único. Se não existir um runlevel de sistema anterior, então é escrita a \"\n\"letra B<N>.\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the I</\"\n\"var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\"Se nenhum ficheiro I<utmp> existir, e se nenhum registo de runlevel puder \"\n\"ser encontrado no ficheiro I</var/run/runlevel>, o B<runlevel> escreve a \"\n\"palavra B<unknown> e termina com erro.\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\"O B<runlevel> pode ser usado em scripts I<rc> como substituto do comando \"\n\"B<who -r> do System-V. No entanto, em versões mais recentes do B<init>(8) \"\n\"esta informação está também disponível nas variáveis de ambiente B<RUNLEVEL> \"\n\"e B<PREVLEVEL>.\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"I<utmp>\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"O nome do ficheiro I<utmp> a ler.\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"B<init>(8), B<utmp>(5)\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"SHUTDOWN\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"12 Novembro, 2003\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"shutdown - desliga o sistema\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<tempo> [I<mensagem de \"\n\"aviso>]\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\"O B<shutdown> desliga o sistema num modo seguro. Todos os utilizadores com \"\n\"sessão aberta são notificados de que o sistema vai desligar, e o B<login>(1) \"\n\"é bloqueado. É possível desligar o sistema imediatamente ou após um atraso \"\n\"especificado. Todos os processos são primeiro notificados de que o sistema \"\n\"vai desligar pelo sinal B<SIGTERM>. Isto dá a programas como o B<vi>(1)  o \"\n\"tempo para salvar o ficheiro que está a ser editado, a programas de \"\n\"processamento de mail e notícias a hipótese de terminar de maneira limpa, \"\n\"etc. O B<shutdown> faz o seu trabalho ao sinalizar o processo B<init>, \"\n\"pedindo-lhe para mudar o runlevel. O runlevel B<0> é usado para parar o \"\n\"sistema, o runlevel B<6> é usado para reiniciar o sistema, e o runlevel B<1> \"\n\"é usado para pôr o sistema num estado em que se podem executar tarefas \"\n\"administrativas; esta é a predefinição se nenhuma das bandeiras B<-h> ou B<-\"\n\"r> forem dadas ao B<shutdown>. Para ver que acções são tomadas no desligar \"\n\"ou reiniciar veja as entradas apropriadas para esses runlevels no ficheiro \"\n\"I</etc/inittab>.\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"Usa I</etc/shutdown.allow>.\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"B<-k>\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"Não desliga realmente; apenas envia mensagens de aviso a toda a gente.\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"Reinicia após desligar.\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\"Pára ou desliga energia após o desligar do sistema. Normalmente usando com \"\n\"as bandeiras B<-P> ou B<-H>, dependendo se queremos mesmo desligar a energia \"\n\"à máquina ou apenas parar o sistema operativo.\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"B<-P>\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\"Modificador da bandeira B<-h>. A acção de parar deve desligar a energia. Tem \"\n\"de ser usado com a bandeira B<-h>.\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"B<-H>\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\"Modificador da bandeira B<-h>. A acção de parar é de parar ou de cair para o \"\n\"monitor de arranque em sistemas que o suportam. Tem de ser usado com a \"\n\"bandeira B<-h>. Este modo de parar é muitas vezes usado para se correr pelo \"\n\"processo de desligar e deixar o resultado no ecrã para objectivos de \"\n\"depuração. Ou quando o utilizador quer que o SO pare, mas deixe a energia \"\n\"ligada. Para desligar a energia no final da sequência do shutdown use o \"\n\"modificador B<-P> em vez deste.\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"Salta o B<fsck>(8) ao reiniciar.\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"Força o B<fsck>(8) ao reiniciar.\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\"[DESCONTINUADO] Não chame o B<init>(8) para desligar o computador mas faça-o \"\n\"você mesmo. O uso desta opção está desencorajado, e os seus resultados nem \"\n\"sempre são aqueles que você espera.\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\"Cancela um desligar em espera. (B<shutdown now> não fica mais à espera.) Com \"\n\"esta opção está claro que não é possível dar um argumento de tempo, mas você \"\n\"pode inserir argumentos de mensagem explicativa na linha de comandos que \"\n\"será enviada a todos os utilizadores.\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\"Reduz o número de avisos que o B<shutdown> mostra. Normalmente o B<shutdown> \"\n\"mostra avisos a cada 15 minutos e depois a cada minuto nos últimos 10 \"\n\"minutos da contagem decrescente até que I<time> seja alcançado. Quando B<-q> \"\n\"é especificado, o B<shutdown> apenas avisa em intervalos de 60 minutos, na \"\n\"marca dos 10 minutos, na marca dos 5 minutos, e quando o processo de \"\n\"desligar acontece na realidade.\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"B<-Q>\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\"Silencia avisos anteriores ao desligar. Normalmente o B<shutdown> mostra \"\n\"avisos a cada 15 minutos e depois a cada minuto nos últimos 10 minutos da \"\n\"contagem até I<time> ser atingido. Quando B<-Q> é especificado  O \"\n\"B<shutdown> apenas avisa quando o processo de desligar vai realmente \"\n\"acontecer. Todos os outros avisos intervalados são suprimidos.\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"B<-t> I<sec>\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\"Diz ao B<init>(8) para esperar I<sec> segundos entre enviar a todos os \"\n\"processos o sinal de aviso (B<SIGTERM>) e o sinal de morte (B<SIGKILL>), \"\n\"antes de mudar para outro. O tempo predefinido, se nenhum valor for \"\n\"especificado, entre estes dois sinais é de três segundos. Aviso: quando o \"\n\"B<shutdown> chama o B<init>(8) para executar o desligamento (o comportamento \"\n\"predefinido). o B<init>(8) verifica se já todos os processos terminaram e \"\n\"pára de esperar assim que os seus filhos todos terminarem. Quando o \"\n\"B<shutdown> é chamado com a bandeira B<-n>, espera o tempo total \"\n\"especificado (ou os 3 segundos) mesmo que todos os processos já tenham \"\n\"terminado.\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"I<time>\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\nmsgid \"When to shutdown.\"\nmsgstr \"Quando deve desligar.\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"I<warning message>\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\nmsgid \"Message to send to all users.\"\nmsgstr \"Mensagem a enviar a todos os utilizadores.\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\"O argumento I<time> pode ter diferentes formatos. Primeiro, pode ser um \"\n\"tempo absoluto no formato I<hh:mm>, no qual I<hh> é a hora (1 ou 2 dígitos) \"\n\"e I<mm> é o minuto da hora (em dois dígitos). Segundo, pode estar no formato \"\n\"B<+>I<m>, no qual I<m> é o número de minutos a esperar. Terceiro, pode estar \"\n\"no formato B<+>I<hh:mm>, no qual I<hh:mm> é o número de horas e minutos a \"\n\"esperar. A palavra B<now> é uma alternativa para B<+0>.\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file I</\"\n\"etc/nologin> which causes programs such as B<login>(1) to not allow new user \"\n\"logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\"Se o B<shutdown> for chamado com um atraso, irá criar o ficheiro de \"\n\"advertência I</etc/nologin> o qual faz com que programas como o B<login>(1) \"\n\"não permitam novos logins de utilizadores. Este ficheiro é criado cinco \"\n\"minutos antes da sequência de encerramento começar. O B<shutdown> remove \"\n\"este ficheiro se for parado antes de puder sinalizar ao init (isto é, se for \"\n\"cancelado ou se algo correr mal). Também o remove antes de chamar o \"\n\"B<init>(8) para mudar o nível de execução.\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file I</\"\n\"fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\"A bandeira B<-f> significa `reiniciar rápido'. Isto apenas cria um ficheiro \"\n\"de advertência I</fastboot> o qual pode ser testado pelo sistema quando este \"\n\"volta a arrancar. O ficheiro rc de arranque consegue testar se este ficheiro \"\n\"está presente, e decidir não correr o B<fsck>(8) pois o sistema foi \"\n\"desligado de maneira apropriada. Após isso, o processo de arranque deve \"\n\"remover o I</fastboot>.\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file I</\"\n\"forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\"A bandeira B<-F> significa `força o fsck'. Isto apenas cria um ficheiro de \"\n\"advertência I</forcefsck> o qual consegue ser testado pelo sistema quando \"\n\"este volta a arrancar. O ficheiro rc de arranque consegue testar se este \"\n\"ficheiro está presente, e decidir correr o B<fsck>(8) com a bandeira \"\n\"especial `force' para que mesmo os sistemas de ficheiros desmontados de modo \"\n\"apropriado sejam verificados. Após isso, o processo de arranque deve remover \"\n\"o I</forcefsck>.\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\"A bandeira B<-n> faz o B<shutdown> não chamar o B<init>(8), mas matar ele \"\n\"próprio todos os processos a correr. O B<shutdown> irá então desligar as \"\n\"cotas, acesso a contas, a memória virtual e desmontar todos os sistemas de \"\n\"ficheiros.\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"CONTROLE DE ACESSO\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys B<CTRL-ALT-\"\n\"DEL> are pressed, by creating an appropriate entry in I</etc/inittab>. This \"\n\"means that everyone who has physical access to the console keyboard can shut \"\n\"the system down. To prevent this, B<shutdown> can check to see if an \"\n\"authorized user is logged in on one of the virtual consoles. If B<shutdown> \"\n\"is called with the B<-a> argument (add this to the invocation of shutdown in \"\n\"I</etc/inittab>), it checks to see if the file I</etc/shutdown.allow> is \"\n\"present.  It then compares the login names in that file with the list of \"\n\"people that are logged in on a virtual console (from I</var/run/utmp>). Only \"\n\"if one of those authorized users B<or root> is logged in, it will proceed. \"\n\"Otherwise it will write the message\"\nmsgstr \"\"\n\"O B<shutdown> pode ser chamado a partir do B<init>(8) quando as teclas \"\n\"mágicas B<CTRL-ALT-DEL> são pressionadas, ao criar uma entrada apropriada em \"\n\"I</etc/inittab>. Isto significa que qualquer um que tenha acesso físico ao \"\n\"teclado de consola consegue desligar o sistema. Para prevenir isto, o \"\n\"B<shutdown> pode verificar e ver se um utilizador autorizado tem sessão \"\n\"aberta em uma das consolas virtuais. Se o If B<shutdown> é chamado com o \"\n\"argumento B<-a> (adicionar isto na invocação do shutdown em I</etc/\"\n\"inittab>), ele verifica se o ficheiro I</etc/shutdown.allow> está presente. \"\n\"Ele então compara os nomes de login nesse ficheiro com a lista de pessoas \"\n\"que têm sessão aberta numa consola virtual (a partir de I</var/run/utmp>). \"\n\"Apenas se um desses utilizadores autorizados B<ou o root> estiver com login \"\n\"aberto, isto irá prosseguir. Caso contrário irá escrever a mensagem\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"B<shutdown: no authorized users logged in>\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\"na consola de sistema (física). O formato de I</etc/shutdown.allow> é um \"\n\"nome de utilizador por linha. São permitidas linhas vazias e linhas \"\n\"comentário (prefixadas com um B<#>). Actualmente existe um limite de 32 \"\n\"utilizadores neste ficheiro.\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\"Note que se I</etc/shutdown.allow> não estiver presente, o argumento B<-a> é \"\n\"ignorado.\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"HALT OU POWEROFF\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\"A opção B<-H> apenas define a variável de ambiente B<INIT_HALT> do B<init> \"\n\"para B<HALT>, e a opção B<-P> apenas define essa variável para B<POWEROFF>. \"\n\"O script (normalmente I</etc/init.d/halt>) que chama o programa B<halt>(8) \"\n\"como a última coisa na sequência de encerramento deve verificar esta \"\n\"variável de ambiente e chamar o programa B<halt>(8) com as opções certas \"\n\"para que estas opções tenham algum efeito.\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\"Muitos utilizadores esquecem de dar o argumento I<time> e ficam baralhados \"\n\"com a mensagem de erro que o B<shutdown> produz. O argumento I<time> é \"\n\"obrigatório; em 90 por cento dos casos este argumento será a palavra B<now>.\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture CTRL-ALT-\"\n\"DEL, but what exactly is done with that event depends on that environment.\"\nmsgstr \"\"\n\"O B<init>(8) pode apenas capturar CTRL-ALT-DEL e arrancar o B<shutdown> em \"\n\"mod de consola. Se o sistema está a correr o Sistema de janelas X, o \"\n\"servidor X processa todas as teclas. Alguns ambientes X11 tornam possível \"\n\"capturar CTRL-ALT-DEL, mas o que exactamente é feito com esse evento depende \"\n\"desse ambiente.\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\"O B<shutdown> não foi desenhado para correr setuid. O I</etc/shutdown.allow> \"\n\"não é usado para descobrir quem está a executar o shutdown, APENAS verifica \"\n\"quem tem actualmente sessão aberta nas consolas (numa delas).\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"SULOGIN\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"17 Janeiro 2006\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"sulogin - login de único utilizador\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SEGUNDOS> ] [ I<TTY> ]\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\"O I<sulogin> é invocado pelo B<init>(8) quando o sistema vai para modo de \"\n\"único utilizador. (Isto é feito através duma entrada em B<inittab>(5).) O \"\n\"B<init>(8) também tenta executar o B<sulogin> quando o boot loader (ex. \"\n\"B<grub>(8))  passa a opção B<-b>.\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"O utilizador é incitado:\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"Give root password for system maintenance\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"(or type Control-D for normal startup):\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically I</dev/console>).\"\nmsgstr \"\"\n\"O B<sulogin> irá estar ligado ao terminal actual, ou ao dispositivo opcional \"\n\"que pode ser especificado na linha de comandos (tipicamente I</dev/console>).\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\"Se a opção B<-t> for usada então o programa apenas espera o número de \"\n\"segundos dado por uma entrada de utilizador.\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\"Se a opção B<-p> for usada então a shell de único utilizador é invocada com \"\n\"uma I<barra> como primeiro caractere em I<argv[0]>.  Isto faz com que o \"\n\"processo de shell de comporte como uma shell de login. A predefinição é \"\n\"B<não> fazer isto, para que a shell B<não> leia I</etc/profile> ou I<$HOME/.\"\n\"profile> no arranque.\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\"Após o utilizador sair da shell de único utilizador, ou pressionar control-D \"\n\"no aviso, o sistema irá (continuar) arrancar para o runlevel predefinido.\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, no-wrap\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"VARIÁVEIS DE AMBIENTE\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\"O B<sulogin> procura a variável de ambiente B<SUSHELL> ou B<sushell> para \"\n\"determinar qual shell arrancar. Se a variável de ambiente não estiver \"\n\"definida, irá tentar executar a shell do root a partir de I</etc/passwd>. Se \"\n\"isso falhar irá cair para I</bin/sh> como recurso.\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted read/\"\n\"write, using a special \\\"fail safe\\\" shell that is statically linked (this \"\n\"example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\"Isto é de grande valor juntamente com a opção B<-b> para o B<init>(8). Para \"\n\"arrancar o sistema em modo de único utilizador, com o sistema de ficheiros \"\n\"raiz montado em leitura/escrita, usando uma shell \\\"fail safe\\\" especial que \"\n\"está estatisticamente vinculada (este exemplo é válido para o bootprompt do \"\n\"LILO)\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"boot: linux -b rw sushell=/sbin/sash\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"MÉTODOS DE RECURSO (FALLBACK)\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\"O B<sulogin> verifica a palavra passe do root usando primeiro o método \"\n\"standard (B<getpwnam>(3)) . Depois, se a opção B<-e> for especificada, o \"\n\"B<sulogin> examina estes ficheiro directamente para encontrar a palavra \"\n\"passe do root:\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"/etc/passwd,\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"/etc/shadow (se presente)\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\"Se estiverem danificados ou não existirem, o B<sulogin> irá iniciar uma \"\n\"shell de root sem perguntar por uma palavra passe. Use apenas a opção B<-e> \"\n\"se tiver a certeza que a consola está fisicamente protegida contra acesso \"\n\"não autorizado.\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"B<init>(8), B<inittab>(5)\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"UTMPDUMP\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"8 Fevereiro, 2010\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"utmpdump - despeja ficheiros UTMP e WTMP em formato cru\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"B<utmpdump> [B<-froh>] I<nome-de-ficheiro>\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\"O B<utmpdump> é um programa simples que despeja os ficheiros UTMP e WTMP em \"\n\"formato raw, para que possam ser examinados.\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"resulta dados acrescentados quando o ficheiro cresce.\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\"reverso. Escreve de volta a informação de login editada nos ficheiros utmp \"\n\"ou wtmp.\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"usa o antigo formato libc5.\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"informação de utilização.\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\"O utmpdump pode ser útil nos casos de entradas corrompidas em utmp ou wtmp. \"\n\"Ele consegue despejar o utmp/wtmp para um ficheiro ASCII, depois esse \"\n\"ficheiro pode ser editado para se remover entradas danificadas e re-\"\n\"entregado, usando\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"B<utmpdump -r E<lt> ficheiro ascii E<gt> wtmp>\\n\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\"mas tenha atenção que o B<utmpdump> foi escrito apenas para objectivos de \"\n\"depuração.\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\"Você B<não> pode usar a opção B<-r> pois o formato para os ficheiros utmp/\"\n\"wtmp depende fortemente no formato de entrada. Esta ferramenta B<não> foi \"\n\"escrita para uso normal mas só para depuração.\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"Michael Krapp\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"WALL\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"15 Abril 2003\"\n\n#. type: Plain text\n#: ../wall.1:22\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"wall - envia uma mensagem para o terminal de toda a gente.\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"B<wall> [B<-n>] [I<mensagem>]\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\"O B<Wall> envia uma mensagem para toda a gente com sessão aberta com a sua \"\n\"permissão B<mesg>(1) definida para B<yes>. A mensagem pode ser dada como um \"\n\"argumento ao B<wall>, ou pode ser enviar para a entrada standard do B<wall>. \"\n\"Quando se usa a entrada standard a partir dum terminal, a mensagem deve ser \"\n\"terminada coma tecla B<EOF> (geralmente Control-D).\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\"O comprimento da mensagem está limitado a 20 linhas. Para cada invocação do \"\n\"B<wall> será escrita uma notificação no syslog, com facilidade B<LOG_USER> e \"\n\"nível B<LOG_INFO>.\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\"Suprime o cabeçalho normal escrito pelo B<wall>, mudando-o para \\\"Remote \"\n\"broadcast message\\\". Esta opção só está disponível para o root se B<wall> \"\n\"for instalado com set-group-id, e for usado pelo B<rpc.walld>(8).\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\"O B<wall> ignora a variável B<TZ> - a hora escrita no cabeçalho é baseada na \"\n\"hora local do sistema.\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"B<mesg>(1), B<rpc.rwalld>(8)\"\n\n#, no-wrap\n#~ msgid \"sysvinit @VERSION@\"\n#~ msgstr \"sysvinit @VERSION@\"\n\n#, no-wrap\n#~ msgid \"B<a>,\"\n#~ msgstr \"B<a>,\"\n"
  },
  {
    "path": "man/po/sysvinit-man.pot",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same license as the sysvinit package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\n#, fuzzy\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: sysvinit 3.05\\n\"\n\"Report-Msgid-Bugs-To: Your Bugmail <mail@example.com>\\n\"\n\"POT-Creation-Date: 2022-05-09 12:43-0300\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n\"Language: \\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"BOOTLOGD\"\nmsgstr \"\"\n\n#. type: TH\n#: ../bootlogd.8:18\n#, no-wrap\nmsgid \"Jul 21, 2003\"\nmsgstr \"\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20 ../killall5.8:18\n#: ../last.1:20 ../logsave.8:5 ../mesg.1:20 ../mountpoint.1:18 ../pidof.8:18\n#: ../readbootlog.1:20 ../runlevel.8:18 ../shutdown.8:20 ../sulogin.8:18\n#: ../utmpdump.1:18 ../wall.1:18\n#, no-wrap\nmsgid \"sysvinit \"\nmsgstr \"\"\n\n#. type: TH\n#: ../bootlogd.8:18 ../fstab-decode.8:20 ../halt.8:20 ../init.8:20\n#: ../killall5.8:18 ../logsave.8:5 ../pidof.8:18 ../runlevel.8:18\n#: ../shutdown.8:20 ../sulogin.8:18\n#, no-wrap\nmsgid \"Linux System Administrator's Manual\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:19 ../fstab-decode.8:22 ../halt.8:23 ../init.8:23\n#: ../initctl.5:18 ../initscript.5:19 ../inittab.5:23 ../killall5.8:19\n#: ../last.1:23 ../logsave.8:6 ../mesg.1:23 ../mountpoint.1:19 ../pidof.8:19\n#: ../readbootlog.1:23 ../runlevel.8:19 ../shutdown.8:23 ../sulogin.8:19\n#: ../utmpdump.1:19 ../wall.1:20\n#, no-wrap\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:21\nmsgid \"bootlogd - record boot messages\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:21 ../fstab-decode.8:25 ../halt.8:27 ../init.8:27\n#: ../initctl.5:20 ../initscript.5:21 ../killall5.8:21 ../last.1:27\n#: ../logsave.8:8 ../mesg.1:27 ../mountpoint.1:21 ../pidof.8:21\n#: ../readbootlog.1:27 ../runlevel.8:21 ../shutdown.8:27 ../sulogin.8:21\n#: ../utmpdump.1:21 ../wall.1:23\n#, no-wrap\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:31\nmsgid \"\"\n\"B</sbin/bootlogd> [B<-c>] [B<-d>] [B<-e>] [B<-r>] [B<-s>] [B<-v>] [I< \"\n\">B<-l>I< logfile >] [I< >B<-p>I< pidfile >]\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:31 ../fstab-decode.8:28 ../halt.8:53 ../init.8:46\n#: ../initctl.5:22 ../initscript.5:23 ../inittab.5:28 ../killall5.8:28\n#: ../last.1:48 ../logsave.8:14 ../mesg.1:32 ../mountpoint.1:30 ../pidof.8:36\n#: ../readbootlog.1:34 ../runlevel.8:24 ../shutdown.8:36 ../sulogin.8:27\n#: ../utmpdump.1:25 ../wall.1:28\n#, no-wrap\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:35\nmsgid \"\"\n\"B<bootlogd> runs in the background and copies all strings sent to the \"\n\"I</dev/console> device to a logfile. If the I<logfile> is not accessible, \"\n\"the messages will be kept in memory until it is.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:35 ../halt.8:68 ../killall5.8:34 ../last.1:70 ../logsave.8:39\n#: ../mesg.1:38 ../mountpoint.1:33 ../pidof.8:44 ../readbootlog.1:42\n#: ../runlevel.8:49 ../shutdown.8:54 ../utmpdump.1:28 ../wall.1:52\n#, no-wrap\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:36 ../halt.8:75 ../last.1:87 ../mountpoint.1:36\n#, no-wrap\nmsgid \"B<-d>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:38\nmsgid \"Do not fork and run in the background.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:38\n#, no-wrap\nmsgid \"B<-e>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:42\nmsgid \"\"\n\"Print escape characters to the boot log file. This turns off filtering of \"\n\"escape characters and allows tools like GNU B<less>(1) to see and use colour \"\n\"control characters (show the log in colour).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:42 ../pidof.8:47 ../shutdown.8:101\n#, no-wrap\nmsgid \"B<-c>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:47\nmsgid \"\"\n\"Attempt to write to the logfile even if it does not yet exist.  Without this \"\n\"option, B<bootlogd> will wait for the logfile to appear before attempting to \"\n\"write to it. This behavior prevents B<bootlogd> from creating logfiles under \"\n\"mount points.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:47 ../shutdown.8:64 ../utmpdump.1:31\n#, no-wrap\nmsgid \"B<-r>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:50\nmsgid \"\"\n\"If there is an existing logfile called I<logfile> rename it to I<logfile~> \"\n\"unless I<logfile~> already exists.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:50 ../logsave.8:45 ../pidof.8:45\n#, no-wrap\nmsgid \"B<-s>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:56\nmsgid \"\"\n\"Ensure that the data is written to the file after each line by calling \"\n\"B<fdatasync>(3).  This will slow down a B<fsck>(8)  process running in \"\n\"parallel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../bootlogd.8:56 ../logsave.8:53\n#, no-wrap\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:58\nmsgid \"Show version.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:58\n#, no-wrap\nmsgid \"B<-l> I<logfile>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:60\nmsgid \"Log to this logfile. The default is I</var/log/boot>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../bootlogd.8:60\n#, no-wrap\nmsgid \"B<-p> I<pidfile>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:62\nmsgid \"Put process-id in this file. The default is no pidfile.\"\nmsgstr \"\"\n\n#. }}}\n#. type: SH\n#: ../bootlogd.8:62 ../halt.8:94 ../initctl.5:119 ../initscript.5:60\n#: ../killall5.8:37 ../last.1:107 ../mesg.1:48 ../mountpoint.1:44 ../pidof.8:87\n#: ../shutdown.8:216\n#, no-wrap\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:67\nmsgid \"\"\n\"B<bootlogd> saves log data which includes control characters. The log is \"\n\"technically a text file, but not very easy for humans to read. To address \"\n\"this the B<readbootlog>(1) command can be used to display the boot log \"\n\"without the control characters.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:67 ../utmpdump.1:52\n#, no-wrap\nmsgid \"BUGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:77\nmsgid \"\"\n\"B<bootlogd> works by redirecting the console output from the console \"\n\"device.  (Consequently B<bootlogd> requires PTY support in the kernel \"\n\"configuration.)  It copies that output to the real console device and to a \"\n\"log file.  There is no standard way of ascertaining the real console device \"\n\"if you have a new-style I</dev/console> device (major 5, minor 1)  so \"\n\"B<bootlogd> parses the kernel command line looking for B<console=...> lines \"\n\"and deduces the real console device from that.  If that syntax is ever \"\n\"changed by the kernel, or a console type is used that B<bootlogd> does not \"\n\"know about then B<bootlogd> will not work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:78 ../halt.8:116 ../init.8:337 ../initctl.5:147\n#: ../initscript.5:68 ../inittab.5:275 ../killall5.8:48 ../last.1:120\n#: ../logsave.8:58 ../mesg.1:53 ../mountpoint.1:66 ../pidof.8:110\n#: ../readbootlog.1:52 ../runlevel.8:57 ../shutdown.8:232 ../sulogin.8:84\n#: ../utmpdump.1:60 ../wall.1:74\n#, no-wrap\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:82 ../halt.8:122 ../initscript.5:72 ../killall5.8:51\n#: ../last.1:126 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:113\n#: ../runlevel.8:60 ../shutdown.8:238 ../sulogin.8:88 ../wall.1:77\nmsgid \"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME>\"\nmsgstr \"\"\n\n#. type: SH\n#: ../bootlogd.8:82 ../fstab-decode.8:67 ../halt.8:122 ../init.8:346\n#: ../initctl.5:151 ../initscript.5:72 ../inittab.5:290 ../killall5.8:44\n#: ../last.1:126 ../logsave.8:62 ../mesg.1:59 ../mountpoint.1:70 ../pidof.8:104\n#: ../readbootlog.1:58 ../runlevel.8:54 ../shutdown.8:238 ../sulogin.8:88\n#: ../utmpdump.1:62 ../wall.1:70\n#, no-wrap\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../bootlogd.8:85\nmsgid \"B<dmesg>(8), B<fdatasync>(3), B<readbootlog>(1)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"FSTAB-DECODE\"\nmsgstr \"\"\n\n#. type: TH\n#: ../fstab-decode.8:20\n#, no-wrap\nmsgid \"May 2006\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:24\nmsgid \"fstab-decode - run a command with fstab-encoded arguments\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:27\nmsgid \"B<fstab-decode> I<COMMAND> [I<ARGUMENT>]...\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:34\nmsgid \"\"\n\"B<fstab-decode> decodes escapes (such as newline characters and other \"\n\"whitespace)  in the specified I<ARGUMENT>s and uses them to run I<COMMAND>.  \"\n\"The argument escaping uses the same rules as path escaping in I</etc/fstab>, \"\n\"I</etc/mtab> and I</proc/mtab>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:38\nmsgid \"\"\n\"In essence B<fstab-decode> can be used anytime we want to pass multiple \"\n\"parameters to a command as a list of command line arguments. It turns output \"\n\"like this:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:43\n#, no-wrap\nmsgid \"\"\n\"/root\\n\"\n\"/mnt/remote-disk\\n\"\n\"/home\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:49\n#, no-wrap\nmsgid \"\"\n\"Into one long list of parameters, \\\"/root /mnt/remote-disk /home\\\". This\\n\"\n\"can be useful when trying to work with multiple filesystems at once. For\\n\"\n\"instance, we can use it to unmount multiple NFS shares. This program also\\n\"\n\"removes whitespace and other characters which might cause programs such\\n\"\n\"as B<mount>(8) or B<umount>(8) to fail.\\n\"\nmsgstr \"\"\n\n#. type: SH\n#: ../fstab-decode.8:50 ../killall5.8:40 ../mountpoint.1:42 ../pidof.8:80\n#, no-wrap\nmsgid \"EXIT STATUS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:56\nmsgid \"\"\n\"B<fstab-decode> exits with status 127 if I<COMMAND> can't be run.  Otherwise \"\n\"it exits with the status returned by I<COMMAND>.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. {{{  Examples\n#. type: SH\n#: ../fstab-decode.8:57 ../initctl.5:93 ../initscript.5:28 ../inittab.5:204\n#, no-wrap\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:62\nmsgid \"\"\n\"The following example reads I<fstab>, finds all instances of VFAT \"\n\"filesystems and prints their mount points (argument 2 in the I<fstab> \"\n\"file).  B<fstab-decode> then runs the specified program, B<umount>(8), and \"\n\"passes it the list of VFAT mountpoints. This unmounts all VFAT partitions.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:65\n#, no-wrap\nmsgid \"\"\n\"B<fstab-decode umount $(awk \\\\[aq]$3 == \\\\[dq]vfat\\\\[dq] { print $2 }\\\\[aq] \"\n\"/etc/fstab)>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../fstab-decode.8:68\nmsgid \"B<fstab>(5)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"HALT\"\nmsgstr \"\"\n\n#. type: TH\n#: ../halt.8:20\n#, no-wrap\nmsgid \"Nov 6, 2001\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../halt.8:27\nmsgid \"halt, reboot, poweroff - stop the system\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:36\nmsgid \"B</sbin/halt> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-p>] [B<-h>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:43\nmsgid \"B</sbin/reboot> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../halt.8:53\nmsgid \"B</sbin/poweroff> [B<-n>] [B<-w>] [B<-d>] [B<-f>] [B<-i>] [B<-h>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:57\nmsgid \"\"\n\"B<halt> notes that the system is being brought down in the file \"\n\"I</var/log/wtmp>, and then either tells the kernel to halt, reboot or \"\n\"power-off the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:63\nmsgid \"\"\n\"If B<halt> or B<reboot> is called when the system is I<not> in runlevel B<0> \"\n\"or B<6>, in other words when it's running normally, B<shutdown> will be \"\n\"invoked instead (with the B<-h> or B<-r> flag). For more info see the \"\n\"B<shutdown>(8)  manpage.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../halt.8:68\nmsgid \"\"\n\"The rest of this manpage describes the behavior in runlevels 0 and 6, that \"\n\"is when the systems shutdown scripts are being run.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:69 ../pidof.8:51 ../shutdown.8:95 ../wall.1:53\n#, no-wrap\nmsgid \"B<-n>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:72\nmsgid \"\"\n\"Don't sync before reboot or halt. Note that the kernel and storage drivers \"\n\"may still sync.  This implies B<-d>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:72 ../last.1:102\n#, no-wrap\nmsgid \"B<-w>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:75\nmsgid \"\"\n\"Don't actually reboot or halt but only write the wtmp record (in the \"\n\"I</var/log/wtmp> file).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:77\nmsgid \"Don't write the wtmp record.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:77 ../shutdown.8:87 ../utmpdump.1:29\n#, no-wrap\nmsgid \"B<-f>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:79\nmsgid \"Force halt or reboot, don't call B<shutdown>(8).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:79 ../last.1:93\n#, no-wrap\nmsgid \"B<-i>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:83\nmsgid \"\"\n\"Shut down all network interfaces just before B<halt> or B<reboot>.  Warning: \"\n\"This may not work on interfaces which do not have an IP address and should \"\n\"ideally be handled by a network manager service.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:83 ../readbootlog.1:45 ../shutdown.8:68 ../utmpdump.1:35\n#, no-wrap\nmsgid \"B<-h>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:85\nmsgid \"\"\n\"Put all hard drives on the system in stand-by mode just before halt or \"\n\"power-off.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../halt.8:85 ../mountpoint.1:38\n#, no-wrap\nmsgid \"B<-p>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../halt.8:90\nmsgid \"\"\n\"When halting the system, switch off the power. This is the default when \"\n\"B<halt> is called as B<poweroff>.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../halt.8:90 ../init.8:327\n#, no-wrap\nmsgid \"DIAGNOSTICS\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../halt.8:94\nmsgid \"If you're not the superuser, you will get the message `must be superuser'.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:103\nmsgid \"\"\n\"Under older B<sysvinit> releases, B<reboot> and B<halt> should never be \"\n\"called directly. From release 2.74 on B<halt> and B<reboot> invoke \"\n\"B<shutdown>(8) if the system is not in runlevel 0 or 6. This means that if \"\n\"B<halt> or B<reboot> cannot find out the current runlevel (for example, when \"\n\"I</var/run/utmp> hasn't been initialized correctly and I</var/run/runlevel> \"\n\"does not exist) B<shutdown> will be called, which might not be what you \"\n\"want.  Use the B<-f> flag if you want to do a hard B<halt> or B<reboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:109\nmsgid \"\"\n\"The B<-h> flag puts all hard disks in standby mode just before halt or \"\n\"power-off. Right now this is only implemented for IDE drives. A side effect \"\n\"of putting the drive in stand-by mode is that the write cache on the disk is \"\n\"flushed. This is important for IDE drives, since the kernel doesn't flush \"\n\"the write cache itself before power-off.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:113\nmsgid \"\"\n\"The B<halt> program uses I</proc/ide/hd*> to find all IDE disk devices, \"\n\"which means that I</proc> needs to be mounted when B<halt> or B<poweroff> is \"\n\"called or the B<-h> switch will do nothing.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../halt.8:124\nmsgid \"B<shutdown>(8), B<init>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"INIT\"\nmsgstr \"\"\n\n#. type: TH\n#: ../init.8:20\n#, no-wrap\nmsgid \"29 Jul 2004\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../init.8:27\nmsgid \"init, telinit - process control initialization\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:34\nmsgid \"\"\n\"B</sbin/init> [B< -a >] [B< -s >] [B< -b >] [ B<-z> I<xxx> ] [B< 0123456Ss \"\n\">]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:37\nmsgid \"B</sbin/init> [B< --version >]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:41\nmsgid \"B</sbin/telinit> [ B<-t> I<SECONDS> ] [B< 0123456sSQqabcUu >]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../init.8:46\nmsgid \"B</sbin/telinit> [ B<-e> I<VAR>[B<=>I<VAL>] ]\"\nmsgstr \"\"\n\n#. {{{  init\n#. type: SS\n#: ../init.8:48\n#, no-wrap\nmsgid \"Init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:55\nmsgid \"\"\n\"B<init> is the parent of all processes.  Its primary role is to create \"\n\"processes from a script stored in the file I</etc/inittab> (see \"\n\"B<inittab>(5)).  This file usually has entries which cause B<init> to spawn \"\n\"B<getty>s on each line that users can log in.  It also controls autonomous \"\n\"processes required by any particular system.\"\nmsgstr \"\"\n\n#. {{{ Runlevels\n#. type: SH\n#: ../init.8:57\n#, no-wrap\nmsgid \"RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:66\nmsgid \"\"\n\"A I<runlevel> is a software configuration of the system which allows only a \"\n\"selected group of processes to exist.  The processes spawned by B<init> for \"\n\"each of these runlevels are defined in the I</etc/inittab> file.  B<init> \"\n\"can be in one of eight runlevels: B<0\\\\(en6> and B<S> (a.k.a. B<s>).  The \"\n\"runlevel is changed by having a privileged user run B<telinit>, which sends \"\n\"appropriate signals to B<init>, telling it which runlevel to change to.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:75\nmsgid \"\"\n\"Runlevels B<S>, B<0>, B<1>, and B<6> are reserved.  Runlevel S is used to \"\n\"initialize the system on boot.  When starting runlevel S (on boot)  or \"\n\"runlevel 1 (switching from a multi-user runlevel)  the system is entering \"\n\"``single-user mode'', after which the current runlevel is S.  Runlevel 0 is \"\n\"used to halt the system; runlevel 6 is used to reboot the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:82\nmsgid \"\"\n\"After booting through S the system automatically enters one of the \"\n\"multi-user runlevels 2 through 5, unless there was some problem that needs \"\n\"to be fixed by the administrator in single-user mode.  Normally after \"\n\"entering single-user mode the administrator performs maintenance and then \"\n\"reboots the system.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:85\nmsgid \"For more information, see the manpages for B<shutdown>(8) and B<inittab>(5).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:88\nmsgid \"\"\n\"Runlevels 7-9 are also valid, though not really documented. This is because \"\n\"\\\"traditional\\\" Unix variants don't use them.\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../init.8:92\nmsgid \"\"\n\"Runlevels I<S> and I<s> are the same.  Internally they are aliases for the \"\n\"same runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:93\n#, no-wrap\nmsgid \"BOOTING\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:100\nmsgid \"\"\n\"After B<init> is invoked as the last step of the kernel boot sequence, it \"\n\"looks for the file I</etc/inittab> to see if there is an entry of the type \"\n\"B<initdefault> (see B<inittab>(5)). The B<initdefault> entry determines the \"\n\"initial runlevel of the system.  If there is no such entry (or no \"\n\"I</etc/inittab> at all), a runlevel must be entered at the system console.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:103\nmsgid \"\"\n\"Runlevel B<S> or B<s> initialize the system and do not require an \"\n\"I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:105\nmsgid \"In single user mode, B</sbin/sulogin> is invoked on I</dev/console>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:109\nmsgid \"\"\n\"When entering single user mode, B<init> initializes the consoles B<stty> \"\n\"settings to sane values. Clocal mode is set. Hardware speed and handshaking \"\n\"are not changed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:114\nmsgid \"\"\n\"When entering a multi-user mode for the first time, B<init> performs the \"\n\"B<boot> and B<bootwait> entries to allow file systems to be mounted before \"\n\"users can log in.  Then all entries matching the runlevel are processed.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:118\nmsgid \"\"\n\"When starting a new process, B<init> first checks whether the file \"\n\"I</etc/initscript> exists. If it does, it uses this script to start the \"\n\"process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:122\nmsgid \"\"\n\"Each time a child terminates, B<init> records the fact and the reason it \"\n\"died in I</var/run/utmp> and I</var/log/wtmp>, provided that these files \"\n\"exist.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:122\n#, no-wrap\nmsgid \"CHANGING RUNLEVELS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:132\nmsgid \"\"\n\"After it has spawned all of the processes specified, B<init> waits for one \"\n\"of its descendant processes to die, a powerfail signal, or until it is \"\n\"signaled by B<telinit> to change the system's runlevel.  When one of the \"\n\"above three conditions occurs, it re-examines the I</etc/inittab> file.  New \"\n\"entries can be added to this file at any time.  However, B<init> still waits \"\n\"for one of the above three conditions to occur.  To provide for an \"\n\"instantaneous response, the B<telinit Q> or B<q> command can wake up B<init> \"\n\"to re-examine (reload) the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:136\nmsgid \"\"\n\"If B<init> is not in single user mode and receives a powerfail signal \"\n\"(SIGPWR), it reads the file I</etc/powerstatus>. It then starts a command \"\n\"based on the contents of this file:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:136\n#, no-wrap\nmsgid \"F(AIL)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:139\nmsgid \"\"\n\"Power is failing, UPS is providing the power. Execute the B<powerwait> and \"\n\"B<powerfail> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:139\n#, no-wrap\nmsgid \"O(K)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:141\nmsgid \"The power has been restored, execute the B<powerokwait> entries.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:141\n#, no-wrap\nmsgid \"L(OW)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:144\nmsgid \"\"\n\"The power is failing and the UPS has a low battery. Execute the \"\n\"B<powerfailnow> entries.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:148\nmsgid \"\"\n\"If I</etc/powerstatus> doesn't exist or contains anything else then the \"\n\"letters B<F>, B<O> or B<L>, B<init> will behave as if it has read the letter \"\n\"B<F>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:153\nmsgid \"\"\n\"Usage of B<SIGPWR> and I</etc/powerstatus> is discouraged. Someone wanting \"\n\"to interact with B<init> should use the I</run/initctl> control channel - \"\n\"see the B<initctl>(5) manual page for more documentation about this.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  telinit\n#. type: Plain text\n#: ../init.8:165\nmsgid \"\"\n\"When B<init> is requested to change the runlevel, it sends the warning \"\n\"signal B<SIGTERM> to all processes that are undefined in the new runlevel.  \"\n\"It then waits 3 seconds before forcibly terminating these processes via the \"\n\"B<SIGKILL> signal.  Note that B<init> assumes that all these processes (and \"\n\"their descendants) remain in the same process group which B<init> originally \"\n\"created for them.  If any process changes its process group affiliation it \"\n\"will not receive these signals.  Such processes need to be terminated \"\n\"separately.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:165\n#, no-wrap\nmsgid \"TELINIT\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:170\nmsgid \"\"\n\"B</sbin/telinit> is linked to B</sbin/init>.  It takes a one-character \"\n\"argument and signals B<init> to perform the appropriate action.  The \"\n\"following arguments serve as directives to B<telinit>:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:170\n#, no-wrap\nmsgid \"B<0>, B<1>, B<2>, B<3>, B<4>, B<5> or B<6>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:172\nmsgid \"tell B<init> to switch to the specified run level.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:172\n#, no-wrap\nmsgid \"B<a>, B<b>, B<c>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:175\nmsgid \"\"\n\"tell B<init> to process only those B</etc/inittab> file entries having \"\n\"runlevel B<a>, B<b> or B<c>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:175\n#, no-wrap\nmsgid \"B<Q> or B<q>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:177\nmsgid \"tell B<init> to re-examine the I</etc/inittab> file.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:177\n#, no-wrap\nmsgid \"B<S> or B<s>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:179\nmsgid \"tell B<init> to switch to single user mode.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:179\n#, no-wrap\nmsgid \"B<U> or B<u>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:184\nmsgid \"\"\n\"tell B<init> to re-execute itself (preserving the state). No re-examining of \"\n\"I</etc/inittab> file happens. Runlevel should be one of B<Ss0123456> \"\n\"otherwise request would be silently ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:188\nmsgid \"\"\n\"B<telinit> can tell B<init> how long it should wait between sending \"\n\"processes the B<SIGTERM> and B<SIGKILL> signals.  The default is 3 seconds, \"\n\"but this can be changed with the B<-t> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:196\nmsgid \"\"\n\"B<telinit -e> tells B<init> to change the environment for processes it \"\n\"spawns.  The argument of B<-e> is either of the form I<VAR>=I<VAL> which \"\n\"sets variable I<VAR> to value I<VAL>, or of the form I<VAR> (without an \"\n\"equality sign)  which unsets variable I<VAR>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:199\nmsgid \"B<telinit> can be invoked only by users with appropriate privileges.\"\nmsgstr \"\"\n\n#. }}}\n#. }}}\n#. type: Plain text\n#: ../init.8:206\nmsgid \"\"\n\"The B<init> binary checks if it is B<init> or B<telinit> by looking at its \"\n\"I<process id>; the real B<init>'s process id is always B<1>.  From this it \"\n\"follows that instead of calling B<telinit> one can also just use B<init> \"\n\"instead as a shortcut.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:206 ../wall.1:63\n#, no-wrap\nmsgid \"ENVIRONMENT\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:208\nmsgid \"B<Init> sets the following environment variables for all its children:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:208\n#, no-wrap\nmsgid \"B<PATH>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:210\nmsgid \"I</bin:/usr/bin:/sbin:/usr/sbin>\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:210\n#, no-wrap\nmsgid \"B<INIT_VERSION>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:212\nmsgid \"\"\n\"As the name says. Useful to determine if a script runs directly from \"\n\"B<init>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:212\n#, no-wrap\nmsgid \"B<RUNLEVEL>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:214\nmsgid \"The current system runlevel.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:214\n#, no-wrap\nmsgid \"B<PREVLEVEL>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:216\nmsgid \"The previous runlevel (useful after a runlevel switch).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../init.8:216\n#, no-wrap\nmsgid \"B<CONSOLE>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:219\nmsgid \"\"\n\"The system console. This is really inherited from the kernel; however if it \"\n\"is not set B<init> will set it to I</dev/console> by default.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:219\n#, no-wrap\nmsgid \"BOOTFLAGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:222\nmsgid \"\"\n\"It is possible to pass a number of flags to B<init> from the boot monitor \"\n\"(eg. LILO or GRUB). B<init> accepts the following flags:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:222\n#, no-wrap\nmsgid \"B<-s, S, single>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:227\nmsgid \"\"\n\"Single user mode boot. In this mode I</etc/inittab> is examined and the \"\n\"bootup rc scripts are usually run before the single user mode shell is \"\n\"started.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:228\n#, no-wrap\nmsgid \"B<1-5>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:231\nmsgid \"Runlevel to boot into.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:232\n#, no-wrap\nmsgid \"B<-b, emergency>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:236\nmsgid \"\"\n\"Boot directly into a single user shell without running any other startup \"\n\"scripts.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:237\n#, no-wrap\nmsgid \"B<-a, auto>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:245\nmsgid \"\"\n\"The LILO boot loader adds the word \\\"auto\\\" to the command line if it booted \"\n\"the kernel with the default command line (without user intervention).  If \"\n\"this is found B<init> sets the \\\"AUTOBOOT\\\" environment variable to \"\n\"\\\"yes\\\". Note that you cannot use this for any security measures - of course \"\n\"the user could specify \\\"auto\\\" or B<-a> on the command line manually.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:246\n#, no-wrap\nmsgid \"B<-z >I<xxx>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:252\nmsgid \"\"\n\"The argument to B<-z> is ignored. You can use this to expand the command \"\n\"line a bit, so that it takes some more space on the stack. B<init> can then \"\n\"manipulate the command line so that B<ps>(1) shows the current runlevel.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:253\n#, no-wrap\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:259\nmsgid \"\"\n\"This argument, when used on its own, displays the current version of B<init> \"\n\"to the console/stdout. It is a quick way to determine which B<init> software \"\n\"and version is being used. After the version information is displayed, \"\n\"B<init> immediately exits with a return code of zero.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:260\n#, no-wrap\nmsgid \"INTERFACE\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:266\nmsgid \"\"\n\"B<init> listens on a I<fifo> in /dev, I</run/initctl>, for messages.  \"\n\"B<Telinit> uses this to communicate with B<init>. The interface is not very \"\n\"well documented or finished. Those interested should study the I<initreq.h> \"\n\"file in the I<src/> subdirectory of the B<init> source code tar archive.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:266\n#, no-wrap\nmsgid \"SIGNALS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:268\nmsgid \"Init reacts to several signals:\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:268\n#, no-wrap\nmsgid \"B<SIGHUP>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:271\nmsgid \"Has the same effect as B<telinit q>.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:272\n#, no-wrap\nmsgid \"B<SIGUSR1>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:276\nmsgid \"\"\n\"On receipt of this signals, B<init> closes and re-opens its control fifo, \"\n\"B</run/initctl>. Useful for bootscripts when I</dev> is remounted.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:276\n#, no-wrap\nmsgid \"B<SIGUSR2>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:283\nmsgid \"\"\n\"When B<init> receives B<SIGUSR2>, B<init> closes and leaves the control \"\n\"fifo, B</run/initctl>, closed. This may be used to make sure B<init> is not \"\n\"holding open any files. However, it also prevents B<init> from switching \"\n\"runlevels. Which means commands like shutdown no longer work.  The fifo can \"\n\"be re-opened by sending B<init> the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:283\n#, no-wrap\nmsgid \"B<SIGINT>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:287\nmsgid \"\"\n\"Normally the kernel sends this signal to B<init> when CTRL-ALT-DEL is \"\n\"pressed. It activates the I<ctrlaltdel> action.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../init.8:287\n#, no-wrap\nmsgid \"B<SIGWINCH>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:291\nmsgid \"\"\n\"The kernel sends this signal when the I<KeyboardSignal> key is hit.  It \"\n\"activates the I<kbrequest> action.\"\nmsgstr \"\"\n\n#. {{{  Conforming to\n#. type: SH\n#: ../init.8:292\n#, no-wrap\nmsgid \"CONFORMING TO\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../init.8:300\nmsgid \"\"\n\"B<init> is compatible with the System V init. It works closely together with \"\n\"the scripts in the directories I</etc/init.d> and I</etc/rc{runlevel}.d>.  \"\n\"If your system uses this convention, there should be a I<README> file in the \"\n\"directory I</etc/init.d> explaining how these scripts work.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../init.8:300 ../initctl.5:143 ../initscript.5:65 ../inittab.5:271\n#: ../last.1:114 ../readbootlog.1:48 ../shutdown.8:207\n#, no-wrap\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:308\n#, no-wrap\nmsgid \"\"\n\"/etc/inittab\\n\"\n\"/etc/initscript\\n\"\n\"/dev/console\\n\"\n\"/var/run/utmp\\n\"\n\"/var/log/wtmp\\n\"\n\"/run/initctl\\n\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Warnings\n#. type: SH\n#: ../init.8:311\n#, no-wrap\nmsgid \"WARNINGS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:317\nmsgid \"\"\n\"B<init> assumes that processes and descendants of processes remain in the \"\n\"same process group which was originally created for them.  If the processes \"\n\"change their group, B<init> can't kill them and you may end up with two \"\n\"processes reading from one terminal line.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Diagnostics\n#. type: Plain text\n#: ../init.8:327\nmsgid \"\"\n\"On a Debian system, entering runlevel 1 causes all processes to be killed \"\n\"except for kernel threads and the script that does the killing and other \"\n\"processes in its session.  As a consequence of this, it isn't safe to return \"\n\"from runlevel 1 to a multi-user runlevel: daemons that were started in \"\n\"runlevel S and are needed for normal operation are no longer running.  The \"\n\"system should be rebooted.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../init.8:337\nmsgid \"\"\n\"If B<init> finds that it is continuously respawning an entry more than 10 \"\n\"times in 2 minutes, it will assume that there is an error in the command \"\n\"string, generate an error message on the system console, and refuse to \"\n\"respawn this entry until either 5 minutes has elapsed or it receives a \"\n\"signal.  This prevents it from eating up system resources when someone makes \"\n\"a typographical error in the I</etc/inittab> file or the program for the \"\n\"entry is removed.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../init.8:346\nmsgid \"\"\n\"E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van Smoorenburg E<.ME , initial \"\n\"manual page by> E<.MT u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> \"\n\"Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../init.8:356\nmsgid \"\"\n\"B<getty>(1), B<login>(1), B<sh>(1), B<runlevel>(8), B<shutdown>(8), \"\n\"B<kill>(1), B<initctl>(5), B<inittab>(5), B<initscript>(5), B<utmp>(5)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"INITCTL\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initctl.5:17\n#, no-wrap\nmsgid \"April 13, 2018\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initctl.5:17 ../initscript.5:18 ../inittab.5:20\n#, no-wrap\nmsgid \"File Formats\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:20\nmsgid \"initctl - /run/initctl is a named pipe which passes commands to SysV init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:22\nmsgid \"/run/initctl\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:28\nmsgid \"\"\n\"This document describes the communication pipe set up by SysV B<init> at \"\n\"I</run/initctl>. This named pipe allows programs with the proper permissions \"\n\"(typically programs run by root have read+write access to the pipe) to send \"\n\"signals to the B<init> program (PID 1).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:32\nmsgid \"\"\n\"The B<init> manual page has, up until recently, simply stated that people \"\n\"wishing to understand how to send messages to B<init> should read the init \"\n\"program's source code, but that is not usually practical.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:36\nmsgid \"\"\n\"Messages sent to the pipe to talk to B<init> must have a special format.  \"\n\"This format is defined as a C structure and the technical break-down is \"\n\"presented here:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:44\n#, no-wrap\nmsgid \"\"\n\"/*\\n\"\n\" *      Because of legacy interfaces, \\\"runlevel\\\" and \\\"sleeptime\\\"\\n\"\n\" *      aren't in a separate struct in the union.\\n\"\n\" *\\n\"\n\" *      The weird sizes are because init expects the whole\\n\"\n\" *      struct to be 384 bytes.\\n\"\n\" */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:55\n#, no-wrap\nmsgid \"\"\n\"struct init_request {\\n\"\n\"        int     magic;                  /* Magic number                 */\\n\"\n\"        int     cmd;                    /* What kind of request         */\\n\"\n\"        int     runlevel;               /* Runlevel to change to        */\\n\"\n\"        int     sleeptime;              /* Time between TERM and KILL   */\\n\"\n\"        union {\\n\"\n\"                struct init_request_bsd bsd;\\n\"\n\"                char                    data[368];\\n\"\n\"        } i;\\n\"\n\"};\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:61\nmsgid \"\"\n\"Let's go through the init_request structure one line at a time. The first \"\n\"variable, the \\\"magic\\\" number must be of the value 0x03091969.  The B<init> \"\n\"program then knows that only programs with root access which send this magic \"\n\"number are authorized to communicate with init.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:64\nmsgid \"\"\n\"The I<cmd> variable is a value in the range of 0-8 (currently). This I<cmd> \"\n\"variable tells init what we want it to do. Here are the possible options:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:66\nmsgid \"1 - Set the current runlevel, specified by the runlevel variable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:68\nmsgid \"2 - The power will fail soon (probably low battery) prepare to shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:70\nmsgid \"3 - The power is failing, do shutdown immediately.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:72\nmsgid \"4 - The power is okay, cancel shutdown.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:75\n#, no-wrap\nmsgid \"\"\n\"6 - Set an environment variable to a value to be specified in \\n\"\n\"    the I<data> variable of this structure.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:78\nmsgid \"\"\n\"Other I<cmd> options may be added to B<init> later. For example, command \"\n\"values 0, 5 and 7 are defined but currently not implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:80\nmsgid \"The I<runlevel> variable will specify the runlevel to switch to (0-6).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:84\nmsgid \"\"\n\"The I<sleeptime> variable is to be used when we want to tell B<init> to \"\n\"change the time spent waiting between sending B<SIGTERM> and B<SIGKILL> \"\n\"during the shutdown process. Changing this at run time is not yet \"\n\"implemented.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:88\nmsgid \"\"\n\"The I<data> variable (in the union) can be used to pass misc data which init \"\n\"might need to process our request. For example, when setting environment \"\n\"variables.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:92\nmsgid \"\"\n\"When setting an environment variable through B<init>'s I</run/initctl> pipe, \"\n\"the data variable should have the format I<VARIABLE>=I<VALUE>. The string \"\n\"should be terminated with a NULL character.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:99\nmsgid \"\"\n\"The following C code example shows how to send a set environment variable \"\n\"request to the B<init> process using the I</run/initctl> pipe. This example \"\n\"is simplified and skips the error checking. A more complete example can be \"\n\"found in the shutdown.c program's B<init_setnv>() function.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:103\n#, no-wrap\nmsgid \"\"\n\"struct init_request     request;           /* structure defined above */\\n\"\n\"int                     fd;                /* file descriptor for pipe */\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:108\n#, no-wrap\nmsgid \"\"\n\"memset(&request, 0, sizeof(request));      /* initialize structure */\\n\"\n\"request.magic = 0x03091969;                /* magic number required */\\n\"\n\"request.cmd = 6;                           /* 6 is to set a variable */\\n\"\n\"sprintf(request.data, \\\"VARIABLE=VALUE\\\");   /* set VAR to VALUE in init \"\n\"*/\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:116\n#, no-wrap\nmsgid \"\"\n\"if ((fd = open(INIT_FIFO, O_WRONLY)) E<gt>= 0) /* open pipe for writing */\\n\"\n\"{ \\n\"\n\"    size_t s  = sizeof(request);           /* size of structure to write \"\n\"*/\\n\"\n\"    void *ptr = &request;                  /* temporary pointer */\\n\"\n\"    write(fd, ptr, s);                     /* send structure to the pipe \"\n\"*/\\n\"\n\"    close(fd);                             /* close the pipe when done */\\n\"\n\"}\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:125\nmsgid \"\"\n\"Usually the I</run/initctl> pipe would only be used by low-level programs to \"\n\"request a power-related shutdown or change the runlevel, like B<telinit> \"\n\"would do. Most of the time there is no need to talk to B<init> directly, but \"\n\"this gives us an extendable approach so B<init> can be taught how to learn \"\n\"more commands.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:130\nmsgid \"\"\n\"The commands passed through the I</run/initctl> pipe must be sent in a \"\n\"specific binary format and be of a specific length. Larger data structures \"\n\"or ones not using the proper format will be ignored. Typically, only root \"\n\"has the ability to write to the initctl pipe for security reasons.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:138\nmsgid \"\"\n\"The I</run/initctl> pipe can be closed by sending init (PID 1) the \"\n\"B<SIGUSR2> signal. This closes the pipe and leaves it closed. This may be \"\n\"useful for making sure B<init> is not keeping any files open. However, when \"\n\"the pipe is closed, B<init> no longer receives signals, such as those sent \"\n\"by B<shutdown>(8) or B<telinit>(8). In other words if we close the pipe, \"\n\"B<init> cannot change its runlevel directly. The pipe may be re-opened by \"\n\"sending B<init> (PID 1)  the B<SIGUSR1> signal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:142\nmsgid \"\"\n\"If the I</run/initctl> pipe is closed then it may still be possible to bring \"\n\"down the system using the B<shutdown>(8) command's B<-n> flag, but this is \"\n\"not always clean and not recommended.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:146\nmsgid \"/run/initctl /sbin/init\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:151\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com > Jesse Smith E<.ME>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initctl.5:152\nmsgid \"B<init>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"INITSCRIPT\"\nmsgstr \"\"\n\n#. type: TH\n#: ../initscript.5:18\n#, no-wrap\nmsgid \"July 10, 2003\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:21\nmsgid \"initscript - script that executes inittab commands\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:23\nmsgid \"/bin/sh /etc/initscript id runlevels action process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:28\nmsgid \"\"\n\"When the shell script I</etc/initscript> is present, B<init> will use it to \"\n\"execute the commands from I<inittab>.  This script can be used to set things \"\n\"like I<ulimit> and I<umask> default values for every process.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:31\nmsgid \"\"\n\"This is a sample initscript, which might be installed on your system as \"\n\"I</etc/initscript.sample>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:42\n#, no-wrap\nmsgid \"\"\n\"#\\n\"\n\"# initscript   Executed by init(8) for every program it\\n\"\n\"#              wants to spawn like this:\\n\"\n\"#\\n\"\n\"#              /bin/sh /etc/initscript E<lt>idE<gt> E<lt>levelE<gt> \"\n\"E<lt>actionE<gt> E<lt>processE<gt>\\n\"\n\"#\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:48\n#, no-wrap\nmsgid \"\"\n\"  # Set umask to safe level, and enable core dumps.\\n\"\n\"  umask 022\\n\"\n\"  ulimit -c 2097151\\n\"\n\"  PATH=/bin:/sbin:/usr/bin:/usr/sbin\\n\"\n\"  export PATH\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:54\n#, no-wrap\nmsgid \"\"\n\"  # Increase the hard file descriptor limit for all processes\\n\"\n\"  # to 8192.  The soft limit is still 1024, but any unprivileged\\n\"\n\"  # process can increase its soft limit up to the hard limit\\n\"\n\"  # with \\\"ulimit -Sn xxx\\\" (needs a 2.2.13 or later Linux kernel).\\n\"\n\"  ulimit -Hn 8192\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:57\n#, no-wrap\nmsgid \"\"\n\"  # Execute the program.\\n\"\n\"  eval exec \\\"$4\\\"\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:65\nmsgid \"\"\n\"This script is not meant as startup script for daemons or services.  It has \"\n\"nothing to do with a I<rc.local> style script. It's just a handler for \"\n\"things executed from B</etc/inittab>. Experimenting with this can make your \"\n\"system un(re)bootable.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:68\nmsgid \"/etc/inittab, /etc/initscript.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../initscript.5:74\nmsgid \"B<inittab>(5), B<init>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"INITTAB\"\nmsgstr \"\"\n\n#. type: TH\n#: ../inittab.5:20\n#, no-wrap\nmsgid \"Dec 4, 2001\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../inittab.5:28\nmsgid \"\"\n\"inittab - format of the inittab file used by the sysv-compatible init \"\n\"process\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:36\nmsgid \"\"\n\"The B<inittab> file describes which processes are started at bootup and \"\n\"during normal operation (e.g.\\\\& /etc/init.d/boot, /etc/init.d/rc, \"\n\"gettys...).  B<init>(8)  distinguishes multiple I<runlevels>, each of which \"\n\"can have its own set of processes that are started.  Valid runlevels are \"\n\"B<0>-B<6> plus B<A>, B<B>, and B<C> for B<ondemand> entries.  An entry in \"\n\"the B<inittab> file has the following format:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:39\nmsgid \"I<id>:I<runlevels>:I<action>:I<process>\"\nmsgstr \"\"\n\n#. {{{  id\n#. type: Plain text\n#: ../inittab.5:43\nmsgid \"Lines beginning with `#' are ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:43\n#, no-wrap\nmsgid \"I<id>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:48\nmsgid \"\"\n\"is a unique sequence of 1-4 characters which identifies an entry in \"\n\"B<inittab> (for versions of sysvinit compiled with the I<old> libc5 (E<lt> \"\n\"5.2.18) or a.out libraries the limit is 2 characters).\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  runlevels\n#. type: Plain text\n#: ../inittab.5:55\nmsgid \"\"\n\"Note: traditionally, for getty and other login processes, the value of the \"\n\"I<id> field is kept the same as the suffix of the corresponding tty, e.g.\\\\& \"\n\"B<1> for B<tty1>. Some ancient login accounting programs might expect this, \"\n\"though I can't think of any.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:55\n#, no-wrap\nmsgid \"I<runlevels>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  action\n#. type: Plain text\n#: ../inittab.5:59\nmsgid \"lists the runlevels for which the specified action should be taken.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:59\n#, no-wrap\nmsgid \"I<action>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  process\n#. type: Plain text\n#: ../inittab.5:63\nmsgid \"describes which action should be taken.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:63\n#, no-wrap\nmsgid \"I<process>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:70\nmsgid \"\"\n\"specifies the process to be executed.  If the process field starts with a \"\n\"`+' character, B<init> will not do utmp and wtmp accounting for that \"\n\"process.  This is needed for gettys that insist on doing their own utmp/wtmp \"\n\"housekeeping.  This is also a historic bug. The length of this field is \"\n\"limited to 127 characters.\"\nmsgstr \"\"\n\n#. '<>?\n#. type: Plain text\n#: ../inittab.5:77\nmsgid \"\"\n\"Please note that including certain characters in the process field will \"\n\"result in B<init> attempting to launch a shell to interpret the command \"\n\"contained in the process field.  The characters which will trigger a shell \"\n\"are: B<~`!$^&*()=|\\\\{}[];>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:84\nmsgid \"\"\n\"On systems which do not have a shell to be launched or which do not wish to \"\n\"use a shell to interpret the process field, the process field can be \"\n\"prefixed with the @ symbol. The @ will be ignored and everything followed \"\n\"will be treated as a command to be launched, literally, by the B<init> \"\n\"service.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:89\nmsgid \"\"\n\"In cases where both a + and @ sign are to be used (to turn off logging and \"\n\"shell interpretation), place the + sign before the @ symbol. Both flags will \"\n\"be handled and then everything following the @ will be handled by B<init>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:98\nmsgid \"\"\n\"The I<runlevels> field may contain multiple characters for different \"\n\"runlevels.  For example, B<123> specifies that the process should be started \"\n\"in runlevels 1, 2, and 3.  The I<runlevels> for B<ondemand> entries may \"\n\"contain an B<A>, B<B>, or B<C>.  The I<runlevels> field of B<sysinit>, \"\n\"B<boot>, and B<bootwait> entries are ignored.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:102\nmsgid \"\"\n\"When the system runlevel is changed, any running processes that are not \"\n\"specified for the new runlevel are killed, first with \\\\s-2SIGTERM\\\\s0, then \"\n\"with \\\\s-2SIGKILL\\\\s0.\"\nmsgstr \"\"\n\n#. {{{  respawn\n#. type: Plain text\n#: ../inittab.5:105\nmsgid \"Valid actions for the I<action> field are:\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:105\n#, no-wrap\nmsgid \"B<respawn>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  wait\n#. type: Plain text\n#: ../inittab.5:109\nmsgid \"The process will be restarted whenever it terminates (e.g.\\\\& getty).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:109\n#, no-wrap\nmsgid \"B<wait>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  once\n#. type: Plain text\n#: ../inittab.5:115\nmsgid \"\"\n\"The process will be started once when the specified runlevel is entered and \"\n\"B<init> will wait for its termination.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:115\n#, no-wrap\nmsgid \"B<once>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  boot\n#. type: Plain text\n#: ../inittab.5:120\nmsgid \"The process will be executed once when the specified runlevel is entered.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:120\n#, no-wrap\nmsgid \"B<boot>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  bootwait\n#. type: Plain text\n#: ../inittab.5:125\nmsgid \"\"\n\"The process will be executed during system boot.  The I<runlevels> field is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:125\n#, no-wrap\nmsgid \"B<bootwait>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  off\n#. type: Plain text\n#: ../inittab.5:132\nmsgid \"\"\n\"The process will be executed during system boot, while B<init> waits for its \"\n\"termination (e.g.\\\\& /etc/rc).  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:132\n#, no-wrap\nmsgid \"B<off>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  ondemand\n#. type: Plain text\n#: ../inittab.5:136\nmsgid \"This does nothing.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:136\n#, no-wrap\nmsgid \"B<ondemand>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  initdefault\n#. type: Plain text\n#: ../inittab.5:143\nmsgid \"\"\n\"A process marked with an B<ondemand> runlevel will be executed whenever the \"\n\"specified B<ondemand> runlevel is called.  However, no runlevel change will \"\n\"occur (B<ondemand> runlevels are `a', `b', and `c').\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:143\n#, no-wrap\nmsgid \"B<initdefault>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  sysinit\n#. type: Plain text\n#: ../inittab.5:150\nmsgid \"\"\n\"An B<initdefault> entry specifies the runlevel which should be entered after \"\n\"system boot.  If none exists, B<init> will ask for a runlevel on the \"\n\"console. The I<process> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:150\n#, no-wrap\nmsgid \"B<sysinit>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  powerwait\n#. type: Plain text\n#: ../inittab.5:156\nmsgid \"\"\n\"The process will be executed during system boot. It will be executed before \"\n\"any B<boot> or B< bootwait> entries.  The I<runlevels> field is ignored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:156\n#, no-wrap\nmsgid \"B<powerwait>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  powerfail\n#. type: Plain text\n#: ../inittab.5:162\nmsgid \"\"\n\"The process will be executed when the power goes down. B<init> is usually \"\n\"informed about this by a process talking to a UPS connected to the \"\n\"computer.  B<init> will wait for the process to finish before continuing.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:162\n#, no-wrap\nmsgid \"B<powerfail>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  powerokwait\n#. type: Plain text\n#: ../inittab.5:167\nmsgid \"\"\n\"As for B<powerwait>, except that B<init> does not wait for the process's \"\n\"completion.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:167\n#, no-wrap\nmsgid \"B<powerokwait>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  powerfailnow\n#. type: Plain text\n#: ../inittab.5:172\nmsgid \"\"\n\"This process will be executed as soon as B<init> is informed that the power \"\n\"has been restored.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:172\n#, no-wrap\nmsgid \"B<powerfailnow>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  ctrlaltdel\n#. type: Plain text\n#: ../inittab.5:178\nmsgid \"\"\n\"This process will be executed when B<init> is told that the battery of the \"\n\"external UPS is almost empty and the power is failing (provided that the \"\n\"external UPS and the monitoring process are able to detect this condition).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:178\n#, no-wrap\nmsgid \"B<ctrlaltdel>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  kbrequest\n#. type: Plain text\n#: ../inittab.5:186\nmsgid \"\"\n\"The process will be executed when B<init> receives the B<SIGINT> signal.  \"\n\"This means that someone on the system console has pressed the \"\n\"B<CTRL-ALT-DEL> key combination. Typically one wants to execute some sort of \"\n\"B<shutdown> either to get into single-user level or to reboot the machine.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../inittab.5:186\n#, no-wrap\nmsgid \"B<kbrequest>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:190\nmsgid \"\"\n\"The process will be executed when B<init> receives a signal from the \"\n\"keyboard handler that a special key combination was pressed on the console \"\n\"keyboard.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:196\nmsgid \"\"\n\"The documentation for this function is not complete yet; more documentation \"\n\"can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time \"\n\"of this writing). Basically you want to map some keyboard combination to the \"\n\"\\\"KeyboardSignal\\\" action. For example, to map Alt-Uparrow for this purpose \"\n\"use the following in your keymaps file:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:199\nmsgid \"alt keycode 103 = KeyboardSignal\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:206\nmsgid \"This is an example of a inittab which resembles the old Linux inittab:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:217\n#, no-wrap\nmsgid \"\"\n\"# inittab for linux\\n\"\n\"id:1:initdefault:\\n\"\n\"rc::bootwait:/etc/rc\\n\"\n\"1:1:respawn:/etc/getty 9600 tty1\\n\"\n\"2:1:respawn:/etc/getty 9600 tty2\\n\"\n\"3:1:respawn:/etc/getty 9600 tty3\\n\"\n\"4:1:respawn:/etc/getty 9600 tty4\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:222\nmsgid \"\"\n\"This inittab file executes I</etc/rc> during boot and starts gettys on \"\n\"tty1-tty4.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:225\nmsgid \"\"\n\"A more elaborate B<inittab> with different runlevels (see the comments \"\n\"inside):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:231\n#, no-wrap\nmsgid \"\"\n\"# Level to run in\\n\"\n\"id:2:initdefault:\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:234\n#, no-wrap\nmsgid \"\"\n\"# Boot-time system configuration/initialization script.\\n\"\n\"si::sysinit:/etc/init.d/rcS\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:237\n#, no-wrap\nmsgid \"\"\n\"# What to do in single-user mode.\\n\"\n\"~:S:wait:/sbin/sulogin\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:245\n#, no-wrap\nmsgid \"\"\n\"# /etc/init.d executes the S and K scripts upon change\\n\"\n\"# of runlevel.\\n\"\n\"#\\n\"\n\"# Runlevel 0 is halt.\\n\"\n\"# Runlevel 1 is single-user.\\n\"\n\"# Runlevels 2-5 are multi-user.\\n\"\n\"# Runlevel 6 is reboot.\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:253\n#, no-wrap\nmsgid \"\"\n\"l0:0:wait:/etc/init.d/rc 0\\n\"\n\"l1:1:wait:/etc/init.d/rc 1\\n\"\n\"l2:2:wait:/etc/init.d/rc 2\\n\"\n\"l3:3:wait:/etc/init.d/rc 3\\n\"\n\"l4:4:wait:/etc/init.d/rc 4\\n\"\n\"l5:5:wait:/etc/init.d/rc 5\\n\"\n\"l6:6:wait:/etc/init.d/rc 6\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:256\n#, no-wrap\nmsgid \"\"\n\"# What to do at the \\\"3 finger salute\\\".\\n\"\n\"ca::ctrlaltdel:/sbin/shutdown -t1 -h now\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:265\n#, no-wrap\nmsgid \"\"\n\"# Runlevel 2,3: getty on virtual consoles\\n\"\n\"# Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)\\n\"\n\"1:23:respawn:/sbin/getty tty1 VC linux\\n\"\n\"2:23:respawn:/sbin/getty tty2 VC linux\\n\"\n\"3:23:respawn:/sbin/getty tty3 VC linux\\n\"\n\"4:23:respawn:/sbin/getty tty4 VC linux\\n\"\n\"S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320\\n\"\n\"S1:3:respawn:/sbin/mgetty -x0 -D ttyS1\\n\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../inittab.5:275\nmsgid \"/etc/inittab\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../inittab.5:290\nmsgid \"\"\n\"B<init> was written by E<.MT miquels@\\\\:cistron\\\\:.nl> Miquel van \"\n\"Smoorenburg E<.ME .> This manual page was written by E<.MT \"\n\"lederer@\\\\:francium\\\\:.informatik\\\\:.uni-bonn\\\\:.de> Sebastian Lederer \"\n\"E<.ME> and modified by E<.MT \"\n\"u31b3hs@\\\\:pool\\\\:.informatik\\\\:.rwth-aachen\\\\:.de> Michael Haardt E<.ME .>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../inittab.5:292\nmsgid \"B<init>(8), B<telinit>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"KILLALL5\"\nmsgstr \"\"\n\n#. type: TH\n#: ../killall5.8:18\n#, no-wrap\nmsgid \"04 Nov 2003\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:21\nmsgid \"killall5 - send a signal to all processes\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:28\nmsgid \"\"\n\"B<killall5> B<-signalnumber> [B<-o> I<omitpid>[,I<omitpid>...]] [B<-o> \"\n\"I<omitpid>[,I<omitpid>...]...]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:34\nmsgid \"\"\n\"B<killall5> is the SystemV B<killall> command. It sends a signal to all \"\n\"processes except kernel threads and the processes in its own session, so it \"\n\"won't kill the shell that is running the script it was called from. Its \"\n\"primary (only) use is in the B<rc> scripts found in the I</etc/init.d> \"\n\"directory.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../killall5.8:35\n#, no-wrap\nmsgid \"B<-o> I<omitpid>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:37\nmsgid \"Tells B<killall5> to omit processes with that process id.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:40\nmsgid \"\"\n\"B<killall5> can also be invoked as B<pidof>(8), which is simply a (symbolic) \"\n\"link to the B<killall5> program.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:44\nmsgid \"\"\n\"The program return zero if it killed processes.  It returns 2 if no process \"\n\"were killed, and 1 if it was unable to find any processes (I</proc/> is \"\n\"missing).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../killall5.8:48\nmsgid \"B<halt>(8), B<reboot>(8), B<pidof>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"LAST,\"\nmsgstr \"\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: TH\n#: ../last.1:20\n#, no-wrap\nmsgid \"Jul 31, 2004\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../last.1:27\nmsgid \"last, lastb - show listing of last logged in users\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:37\nmsgid \"\"\n\"B<last> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [B<-adFiowx>] [-B<f> \"\n\"I<file\\\\/>] [-B<t> I<YYYYMMDDHHMMSS\\\\/>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../last.1:48\nmsgid \"\"\n\"B<lastb> [B<-R>] [B<->I<num>] [-B<n> I<num\\\\/>] [-B<f> I<file\\\\/>] \"\n\"[B<-adFiowx>] [I<name...>] [I<tty...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:56\nmsgid \"\"\n\"B<Last> searches back through the file B</var/log/wtmp> (or the file \"\n\"designated by the B<-f> flag) and displays a list of all users logged in \"\n\"(and out) since that file was created.  Names of users and tty's can be \"\n\"given, in which case B<last> will show only those entries matching the \"\n\"arguments.  Names of ttys can be abbreviated, thus B<last 0> is the same as \"\n\"B<last tty0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:61\nmsgid \"\"\n\"When B<last> catches a B<SIGINT> signal (generated by the interrupt key, \"\n\"usually control-C) or a B<SIGQUIT> signal (generated by the quit key, \"\n\"usually control-\\\\e), B<last> will show how far it has searched through the \"\n\"file; in the case of the B<SIGINT> signal B<last> will then terminate.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:65\nmsgid \"\"\n\"The pseudo user B<reboot> logs in each time the system is rebooted.  Thus \"\n\"B<last reboot> will show a log of all reboots since the log file was \"\n\"created.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../last.1:70\nmsgid \"\"\n\"B<lastb> is the same as B<last>, except that by default it shows a log of \"\n\"the file B</var/log/btmp>, which contains all the bad login attempts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:71 ../readbootlog.1:43\n#, no-wrap\nmsgid \"B<-f> I<file>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:73\nmsgid \"Tells B<last> to use a specific file instead of I</var/log/wtmp>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:73\n#, no-wrap\nmsgid \"B<->I<num>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:75\nmsgid \"This is a count telling B<last> how many lines to show.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:75\n#, no-wrap\nmsgid \"B<-n> I<num>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:77\nmsgid \"The same.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:77\n#, no-wrap\nmsgid \"B<-t> I<YYYYMMDDHHMMSS>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:82\nmsgid \"\"\n\"Display the state of logins as of the specified time.  This is useful, e.g., \"\n\"to determine easily who was logged in at a particular time -- specify that \"\n\"time with B<-t> and look for \\\"still logged in\\\".\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:82\n#, no-wrap\nmsgid \"B<-R>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:84\nmsgid \"Suppresses the display of the hostname field.\"\nmsgstr \"\"\n\n#. {{{  -a\n#. type: IP\n#: ../last.1:84 ../logsave.8:40 ../shutdown.8:56\n#, no-wrap\nmsgid \"B<-a>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:87\nmsgid \"\"\n\"Display the hostname in the last column. Useful in combination with the next \"\n\"flag.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:91\nmsgid \"\"\n\"For non-local logins, Linux stores not only the host name of the remote host \"\n\"but its IP number as well. This option translates the IP number back into a \"\n\"hostname.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:91 ../shutdown.8:91\n#, no-wrap\nmsgid \"B<-F>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:93\nmsgid \"Print full login and logout times and dates.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:96\nmsgid \"\"\n\"This option is like B<-d> in that it displays the IP number of the remote \"\n\"host, but it displays the IP number in numbers-and-dots notation.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:96\n#, no-wrap\nmsgid \"B<-l>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:100\nmsgid \"\"\n\"This option allows the display of usernames longer than 8 characters.  This \"\n\"may mess up formatting in some programs and make the output wider than the \"\n\"standard 80 characters.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:100 ../utmpdump.1:33\n#, no-wrap\nmsgid \"B<-o>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:102\nmsgid \"Read an old-type wtmp file (written by linux-libc5 applications).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:104\nmsgid \"Display full user and domain names in the output.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../last.1:104 ../mountpoint.1:40 ../pidof.8:63\n#, no-wrap\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../last.1:107\nmsgid \"Display the system shutdown entries and run level changes.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../last.1:114\nmsgid \"\"\n\"The files I<wtmp> and I<btmp> might not be found. The system only logs \"\n\"information in these files if they are present. This is a local \"\n\"configuration issue. If you want the files to be used, they can be created \"\n\"with a simple B<touch>(1) command (for example, B<touch /var/log/wtmp>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:116\nmsgid \"/var/log/wtmp\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../last.1:120\nmsgid \"/var/log/btmp\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../last.1:129\nmsgid \"B<shutdown>(8), B<login>(1), B<init>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../logsave.8:5\n#, no-wrap\nmsgid \"LOGSAVE\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:8\nmsgid \"logsave - save the output of a command in a logfile\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:14\nmsgid \"B<logsave> [ B<-asv> ] I<logfile cmd_prog [ ... ]>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:27\nmsgid \"\"\n\"The B<logsave> program will execute I<cmd_prog> with the specified \"\n\"argument(s), and save a copy of its output to I<logfile>.  If the containing \"\n\"directory for I<logfile> does not exist, B<logsave> will accumulate the \"\n\"output in memory until it can be written out.  A copy of the output will \"\n\"also be written to standard output.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:34\nmsgid \"\"\n\"If I<cmd_prog> is a single hyphen ('-'), then instead of executing a \"\n\"program, B<logsave> will take its input from standard input and save it in \"\n\"I<logfile>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:39\nmsgid \"\"\n\"B<logsave> is useful for saving the output of initial boot scripts until the \"\n\"I</var> partition is mounted, so the output can be written to I</var/log>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:45\nmsgid \"\"\n\"This option will cause the output to be appended to I<logfile>, instead of \"\n\"replacing its current contents.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:53\nmsgid \"\"\n\"This option will cause B<logsave> to skip writing to the log file text which \"\n\"is bracketed with a control-A (ASCII 001 or Start of Header) and control-B \"\n\"(ASCII 002 or Start of Text).  This allows progress bar information to be \"\n\"visible to the user on the console, while not being written to the log file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:58\nmsgid \"\"\n\"This option will make B<logsave> to be more verbose in its output to the \"\n\"user.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:62\nmsgid \"E<.MT tytso@mit\\\\:.edu> Theodore Ts'o E<.ME>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../logsave.8:63\nmsgid \"B<fsck>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"MESG\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mesg.1:20\n#, no-wrap\nmsgid \"Feb 26, 2001\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mesg.1:20 ../mountpoint.1:18 ../readbootlog.1:20 ../utmpdump.1:18\n#: ../wall.1:18\n#, no-wrap\nmsgid \"User Commands\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../mesg.1:27\nmsgid \"mesg - control write access to your terminal\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../mesg.1:32\nmsgid \"B<mesg> [B<y>|B<n>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../mesg.1:38\nmsgid \"\"\n\"B<mesg> controls the access to your terminal by others.  It's typically used \"\n\"to allow or disallow other users to write to your terminal (see \"\n\"B<write>(1)).\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:39\n#, no-wrap\nmsgid \"B<y>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:41\nmsgid \"Allow write access to your terminal.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mesg.1:41\n#, no-wrap\nmsgid \"B<n>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:43\nmsgid \"Disallow write access to your terminal.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Notes\n#. type: Plain text\n#: ../mesg.1:48\nmsgid \"\"\n\"If no option is given, B<mesg> prints out the current access state of your \"\n\"terminal.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:53\nmsgid \"\"\n\"B<mesg> assumes that its standard input is connected to your terminal. That \"\n\"also means that if you are logged in multiple times, you can get/set the \"\n\"mesg status of other sessions by using redirection.  For example \\\"mesg n \"\n\"E<lt> /dev/pts/46\\\".\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mesg.1:62\nmsgid \"B<talk>(1), B<write>(1), B<wall>(1)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"MOUNTPOINT\"\nmsgstr \"\"\n\n#. type: TH\n#: ../mountpoint.1:18\n#, no-wrap\nmsgid \"Mar 15, 2004\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:21\nmsgid \"mountpoint - see if a directory is a mountpoint\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:26\nmsgid \"B<mountpoint> [B<-q>] [B<-d>] I</path/to/directory>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:30\nmsgid \"B<mountpoint> B<-x> I</dev/device>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:32\nmsgid \"B<mountpoint> checks if the directory is a mountpoint.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../mountpoint.1:34 ../pidof.8:60 ../shutdown.8:107\n#, no-wrap\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:36\nmsgid \"Be quiet - don't print anything.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:38\nmsgid \"Print major/minor device number of the filesystem on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:40\nmsgid \"Check Linux's I</proc/mounts> file to try to detect circular mount points.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:42\nmsgid \"Print major/minor device number of the blockdevice on stdout.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:44\nmsgid \"Zero if the directory is a mountpoint, non-zero if not.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:48\nmsgid \"\"\n\"Symbolic links are not followed, except when the B<-x> option is used. To \"\n\"force following symlinks, add a trailing slash to the path of the directory.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:52\nmsgid \"\"\n\"The name of the command is misleading when the B<-x> option is used, but the \"\n\"option is useful for comparing if a directory and a device match up, and \"\n\"there is no other command that can print the info easily.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:57\nmsgid \"\"\n\"The mountpoint command fails when a directory is binded to one of its \"\n\"grandparents.  For example, if /a/b/c/d is a mount point for /a/b then \"\n\"mountpoint will report /a/b/c/d is not a valid mount point. This is because \"\n\"both the original directory and its new mount point share the same inode and \"\n\"device number.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:66\nmsgid \"\"\n\"The circular mount problem can be worked around on Linux systems by using \"\n\"theB<-p> flag to check the I</proc/mounts> file for references to the \"\n\"circular mount bind.  When using the B<-p> flag, make sure to specify the \"\n\"full path (ie I</home/user/mp> and not just I<mp>). Also, B<mountpoint> may \"\n\"still fail if there are spaces in the mount point's path, even when using \"\n\"the B<-p> flag because of the way B</proc/mounts> mangles the spaces in the \"\n\"path name. Of course, if the admin is using circular mount points with \"\n\"spaces in the name, there are bigger concerns.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../mountpoint.1:71\nmsgid \"B<stat>(1)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"PIDOF\"\nmsgstr \"\"\n\n#. type: TH\n#: ../pidof.8:18\n#, no-wrap\nmsgid \"01 Sep 1998\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:21\nmsgid \"pidof - find the process ID of a running program\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:36\nmsgid \"\"\n\"B<pidof> [B<-s>] [B<-c>] [B<-n>] [B<-x>] [B<-z>] [B<-o> \"\n\"I<omitpid[,omitpid...]>] [B<-o> I<omitpid[,omitpid...]...>] [B<-d> I<sep>] \"\n\"I<program> [I<program...>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:44\nmsgid \"\"\n\"B<pidof> finds the process id's (PIDs) of the named programs. It prints \"\n\"those id's on the standard output. This program is on some systems used in \"\n\"run-level change scripts, especially when the system has a I<System-V> like \"\n\"I<rc> structure. In that case these scripts are located in I</etc/rc?.d>, \"\n\"where ? is the runlevel. If the system has a B<start-stop-daemon>(8) program \"\n\"that should be used instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:47\nmsgid \"Single shot - this instructs the program to only return one I<pid>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:51\nmsgid \"\"\n\"Only return process PIDs that are running with the same root directory.  \"\n\"This option is ignored for non-root users, as they will be unable to check \"\n\"the current root directory of processes they do not own.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:60\nmsgid \"\"\n\"Avoid B<stat>(2)  system function call on all binaries which are located on \"\n\"network based file systems like B<NFS>.  Instead of using this option the \"\n\"variable B<PIDOF_NETFS> may be set and exported.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:63\nmsgid \"\"\n\"Do not display matched PIDs to standard out. Simply exit with a status of \"\n\"true or false to indicate whether a matching PID was found.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:66\nmsgid \"\"\n\"Scripts too - this causes the program to also return process id's of shells \"\n\"running the named scripts.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:66\n#, no-wrap\nmsgid \"B<-z>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:73\nmsgid \"\"\n\"Try to detect processes which are stuck in zombie (Z)  status. Usually these \"\n\"processes are skipped as trying to deal with them can cause pidof or related \"\n\"tools to hang. Note: In the past pidof would ignore processes in the \"\n\"uninterruptable state (D), unless the B<-z> flag was specified. This is no \"\n\"longer the case. The B<pidof> program will find and report processes in the \"\n\"D state whether B<-z> is specified or not.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:73\n#, no-wrap\nmsgid \"-d I<sep>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:76\nmsgid \"\"\n\"Tells I<pidof> to use I<sep> as an output separator if more than one PID is \"\n\"shown. The default separator is a space.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../pidof.8:76\n#, no-wrap\nmsgid \"-o I<omitpid>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:80\nmsgid \"\"\n\"Tells I<pidof> to omit processes with that process id. The special pid \"\n\"B<%PPID> can be used to name the parent process of the B<pidof> program, in \"\n\"other words the calling shell or shell script.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:81\n#, no-wrap\nmsgid \"B<0>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:84\nmsgid \"At least one program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: TP\n#: ../pidof.8:84\n#, no-wrap\nmsgid \"B<1>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:87\nmsgid \"No program was found with the requested name.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:90\nmsgid \"\"\n\"I<pidof> is actually the same program as B<killall5>(8); the program behaves \"\n\"according to the name under which it is called.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:98\nmsgid \"\"\n\"When B<pidof> is invoked with a full pathname to the program it should find \"\n\"the pid of, it is reasonably safe. Otherwise it is possible that it returns \"\n\"PIDs of running programs that happen to have the same name as the program \"\n\"you're after but are actually other programs. Note that the executable name \"\n\"of running processes is calculated with B<readlink>(2), so symbolic links to \"\n\"executables will also match.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:103\nmsgid \"\"\n\"Zombie processes or processes in disk sleep (states Z and D, respectively)  \"\n\"are ignored, as attempts to access the stats of these will sometimes fail.  \"\n\"The B<-z> flag (see above) tells B<pidof> to try to detect these sleeping \"\n\"and zombie processes, at the risk of failing or hanging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../pidof.8:110\nmsgid \"B<shutdown>(8), B<init>(8), B<halt>(8), B<reboot>(8), B<killall5>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"READBOOTLOG\"\nmsgstr \"\"\n\n#. type: TH\n#: ../readbootlog.1:20\n#, no-wrap\nmsgid \"NOV 12, 2018\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../readbootlog.1:27\nmsgid \"\"\n\"readbootlog - show contents of the boot log, stripping away control \"\n\"characters\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:31\nmsgid \"B<readbootlog> [B<-h>] [-B<f> I<file\\\\/>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../readbootlog.1:42\nmsgid \"\"\n\"B<readbootlog> is a tool for reading the boot log (by default \"\n\"I</var/log/boot>). The program strips away control characters and non-human \"\n\"readable contents from the log file. Output is dumped to the terminal where \"\n\"it can be piped or redirected to a file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:45\nmsgid \"Tells B<readbootlog> to use a specific file instead of I</var/log/boot>.\"\nmsgstr \"\"\n\n#. {{{  Files\n#. type: Plain text\n#: ../readbootlog.1:48\nmsgid \"Displays a brief help message.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Author\n#. type: Plain text\n#: ../readbootlog.1:52\nmsgid \"/var/log/boot\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  See also\n#. type: Plain text\n#: ../readbootlog.1:58\nmsgid \"E<.MT jsmith@\\\\:resonatingmedia\\\\:.com> Jesse Smith E<.ME>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../readbootlog.1:59\nmsgid \"B<bootlogd>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"RUNLEVEL\"\nmsgstr \"\"\n\n#. type: TH\n#: ../runlevel.8:18\n#, no-wrap\nmsgid \"May 27, 1997\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:21\nmsgid \"runlevel - find the previous and current system runlevel\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:24\nmsgid \"B<runlevel> [I<utmp>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:34\nmsgid \"\"\n\"B<runlevel> reads the system I<utmp> file (typically I</var/run/utmp>)  to \"\n\"locate the runlevel record, and then prints the previous and current system \"\n\"runlevel on its standard output, separated by a single space. If there is no \"\n\"previous system runlevel, the letter B<N> will be printed instead.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:42\nmsgid \"\"\n\"If no I<utmp> file exists, and if no runlevel record can be found in the \"\n\"I</var/run/runlevel> file, B<runlevel> prints the word B<unknown> and exits \"\n\"with an error.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:49\nmsgid \"\"\n\"B<Runlevel> can be used in I<rc> scripts as a substitute for the System-V \"\n\"B<who -r> command.  However, in newer versions of B<init>(8) this \"\n\"information is also available in the environment variables B<RUNLEVEL> and \"\n\"B<PREVLEVEL>.\"\nmsgstr \"\"\n\n#. {{{ utmp\n#. type: IP\n#: ../runlevel.8:51\n#, no-wrap\nmsgid \"I<utmp>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../runlevel.8:54\nmsgid \"The name of the I<utmp> file to read.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../runlevel.8:57\nmsgid \"B<init>(8), B<utmp>(5)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"SHUTDOWN\"\nmsgstr \"\"\n\n#. type: TH\n#: ../shutdown.8:20\n#, no-wrap\nmsgid \"November 12, 2003\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Synopsis\n#. type: Plain text\n#: ../shutdown.8:27\nmsgid \"shutdown - bring the system down\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Description\n#. type: Plain text\n#: ../shutdown.8:36\nmsgid \"\"\n\"B</sbin/shutdown> [B<-akrhPHfFncqQ>] [B<-t> I<sec>] I<time> [I<warning \"\n\"message>]\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Options\n#. type: Plain text\n#: ../shutdown.8:54\nmsgid \"\"\n\"B<shutdown> brings the system down in a secure way.  All logged-in users are \"\n\"notified that the system is going down, and B<login>(1) is blocked.  It is \"\n\"possible to shut the system down immediately or after a specified delay.  \"\n\"All processes are first notified that the system is going down by the signal \"\n\"B<SIGTERM>.  This gives programs like B<vi>(1)  the time to save the file \"\n\"being edited, mail and news processing programs a chance to exit cleanly, \"\n\"etc.  B<shutdown> does its job by signalling the B<init> process, asking it \"\n\"to change the runlevel.  Runlevel B<0> is used to halt the system, runlevel \"\n\"B<6> is used to reboot the system, and runlevel B<1> is used to put to \"\n\"system into a state where administrative tasks can be performed; this is the \"\n\"default if neither the B<-h> or B<-r> flag is given to B<shutdown>.  To see \"\n\"which actions are taken on halt or reboot see the appropriate entries for \"\n\"these runlevels in the file I</etc/inittab>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -k\n#. type: Plain text\n#: ../shutdown.8:60\nmsgid \"Use I</etc/shutdown.allow>.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:60\n#, no-wrap\nmsgid \"B<-k>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -r\n#. type: Plain text\n#: ../shutdown.8:64\nmsgid \"Don't really shutdown; only send the warning messages to everybody.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -h\n#. type: Plain text\n#: ../shutdown.8:68\nmsgid \"Reboot after shutdown.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -P\n#. type: Plain text\n#: ../shutdown.8:73\nmsgid \"\"\n\"Halt or power off after shutdown. Usually used with the B<-P> or B<-H> \"\n\"flags, depending on whether we want to poweroff or simply stop the operating \"\n\"system.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:73\n#, no-wrap\nmsgid \"B<-P>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -H\n#. type: Plain text\n#: ../shutdown.8:78\nmsgid \"\"\n\"Modifier to the B<-h> flag. Halt action is to turn off the power.  Must be \"\n\"used with the B<-h> flag.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:78\n#, no-wrap\nmsgid \"B<-H>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -f\n#. type: Plain text\n#: ../shutdown.8:87\nmsgid \"\"\n\"Modifier to the B<-h> flag.  Halt action is to halt or drop into boot \"\n\"monitor on systems that support it.  Must be used with the B<-h> flag.  \"\n\"Halting is often used to run through the shutdown process and leave output \"\n\"on the screen for debugging purposes. Or when the user wants the OS to stop, \"\n\"but leave the power on. To power off at the end of the shutdown sequence use \"\n\"the B<-P> modifier instead.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -F\n#. type: Plain text\n#: ../shutdown.8:91\nmsgid \"Skip B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -n\n#. type: Plain text\n#: ../shutdown.8:95\nmsgid \"Force B<fsck>(8) on reboot.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -c\n#. type: Plain text\n#: ../shutdown.8:101\nmsgid \"\"\n\"[DEPRECATED] Don't call B<init>(8) to do the shutdown but do it ourself.  \"\n\"The use of this option is discouraged, and its results are not always what \"\n\"you'd expect.\"\nmsgstr \"\"\n\n#. {{{  -q\n#. type: Plain text\n#: ../shutdown.8:107\nmsgid \"\"\n\"Cancel a waiting shutdown. (B<shutdown now> is no longer waiting.) With this \"\n\"option it is of course not possible to give the time argument, but you can \"\n\"enter explanatory message arguments on the command line that will be sent to \"\n\"all users.\"\nmsgstr \"\"\n\n#. {{{  -Q\n#. type: Plain text\n#: ../shutdown.8:114\nmsgid \"\"\n\"Reduce the number of warnings B<shutdown> displays. Usually B<shutdown> \"\n\"displays warnings every 15 minutes and then every minute in the last 10 \"\n\"minutes of the countdown until I<time> is reached. When B<-q> is specified \"\n\"B<shutdown> only warns at 60 minute intervals, at the 10 minute mark, at the \"\n\"5 minute mark, and when the shutdown process actually happens.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:114\n#, no-wrap\nmsgid \"B<-Q>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  -t sec\n#. type: Plain text\n#: ../shutdown.8:122\nmsgid \"\"\n\"Silence warnings prior to shutting down. Usually B<shutdown> displays \"\n\"warnings every 15 minutes and then every minute in the last 10 minutes of \"\n\"the countdown until I<time> is reached. When B<-Q> is specified B<shutdown> \"\n\"only warns when the shutdown process actually happens. All other warning \"\n\"intervals are suppressed.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:122\n#, no-wrap\nmsgid \"B<-t> I<sec>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  time\n#. type: Plain text\n#: ../shutdown.8:133\nmsgid \"\"\n\"Tell B<init>(8) to wait I<sec> seconds between sending all processes the \"\n\"warning (B<SIGTERM>) and the kill signal (B<SIGKILL>), before changing to \"\n\"another runlevel.  The default time, if no value is specified, between these \"\n\"two signals is three seconds. Warning: when B<shutdown> calls B<init>(8) to \"\n\"perform the shutdown (the default behavior), B<init>(8) checks to see if all \"\n\"processes have terminated and will stop waiting early once its children have \"\n\"all terminated.  When B<shutdown> is called with the B<-n> flag, it waits \"\n\"the full time specified (or three seconds) even if all other processes have \"\n\"terminated.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:133\n#, no-wrap\nmsgid \"I<time>\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  warning-message\n#. type: Plain text\n#: ../shutdown.8:137\nmsgid \"When to shutdown.\"\nmsgstr \"\"\n\n#. type: IP\n#: ../shutdown.8:137\n#, no-wrap\nmsgid \"I<warning message>\"\nmsgstr \"\"\n\n#. }}}\n#. type: Plain text\n#: ../shutdown.8:140\nmsgid \"Message to send to all users.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:148\nmsgid \"\"\n\"The I<time> argument can have different formats.  First, it can be an \"\n\"absolute time in the format I<hh:mm>, in which I<hh> is the hour (1 or 2 \"\n\"digits) and I<mm> is the minute of the hour (in two digits).  Second, it can \"\n\"be in the format B<+>I<m>, in which I<m> is the number of minutes to wait.  \"\n\"Third, it can be in the format B<+>I<hh:mm>, in which I<hh:mm> is the number \"\n\"of hours and minutes to wait.  The word B<now> is an alias for B<+0>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:156\nmsgid \"\"\n\"If B<shutdown> is called with a delay, it will create the advisory file \"\n\"I</etc/nologin> which causes programs such as B<login>(1) to not allow new \"\n\"user logins. This file is created five minutes before the shutdown sequence \"\n\"starts. B<shutdown> removes this file if it is stopped before it can signal \"\n\"init (i.e. it is cancelled or something goes wrong).  It also removes it \"\n\"before calling B<init>(8) to change the runlevel.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:162\nmsgid \"\"\n\"The B<-f> flag means `reboot fast'.  This only creates an advisory file \"\n\"I</fastboot> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide not to run \"\n\"B<fsck>(8) since the system has been shut down in the proper way.  After \"\n\"that, the boot process should remove I</fastboot>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:169\nmsgid \"\"\n\"The B<-F> flag means `force fsck'.  This only creates an advisory file \"\n\"I</forcefsck> which can be tested by the system when it comes up again.  The \"\n\"boot rc file can test if this file is present, and decide to run B<fsck>(8) \"\n\"with a special `force' flag so that even properly unmounted file systems get \"\n\"checked.  After that, the boot process should remove I</forcefsck>.\"\nmsgstr \"\"\n\n#. }}}\n#. {{{  Files\n#. type: Plain text\n#: ../shutdown.8:176\nmsgid \"\"\n\"The B<-n> flag causes B<shutdown> not to call B<init>(8), but to kill all \"\n\"running processes itself.  B<shutdown> will then turn off quota, accounting, \"\n\"and swapping and unmount all file systems.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:176\n#, no-wrap\nmsgid \"ACCESS CONTROL\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:189\nmsgid \"\"\n\"B<shutdown> can be called from B<init>(8) when the magic keys \"\n\"B<CTRL-ALT-DEL> are pressed, by creating an appropriate entry in \"\n\"I</etc/inittab>. This means that everyone who has physical access to the \"\n\"console keyboard can shut the system down. To prevent this, B<shutdown> can \"\n\"check to see if an authorized user is logged in on one of the virtual \"\n\"consoles. If B<shutdown> is called with the B<-a> argument (add this to the \"\n\"invocation of shutdown in I</etc/inittab>), it checks to see if the file \"\n\"I</etc/shutdown.allow> is present.  It then compares the login names in that \"\n\"file with the list of people that are logged in on a virtual console (from \"\n\"I</var/run/utmp>). Only if one of those authorized users B<or root> is \"\n\"logged in, it will proceed. Otherwise it will write the message\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:192\n#, no-wrap\nmsgid \"B<shutdown: no authorized users logged in>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:197\nmsgid \"\"\n\"to the (physical) system console. The format of I</etc/shutdown.allow> is \"\n\"one user name per line. Empty lines and comment lines (prefixed by a B<#>) \"\n\"are allowed. Currently there is a limit of 32 users in this file.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:200\nmsgid \"\"\n\"Note that if I</etc/shutdown.allow> is not present, the B<-a> argument is \"\n\"ignored.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../shutdown.8:200\n#, no-wrap\nmsgid \"HALT OR POWEROFF\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:207\nmsgid \"\"\n\"The B<-H> option just sets the B<init> environment variable B<INIT_HALT> to \"\n\"B<HALT>, and the B<-P> option just sets that variable to B<POWEROFF>. The \"\n\"script (usually I</etc/init.d/halt>) that calls the B<halt>(8) program as \"\n\"the last thing in the shutting down sequence should check this environment \"\n\"variable and call the B<halt>(8) program with the right options for these \"\n\"options to actually have any effect.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:214\n#, no-wrap\nmsgid \"\"\n\"/fastboot\\n\"\n\"/etc/inittab\\n\"\n\"/etc/init.d/halt\\n\"\n\"/etc/init.d/reboot\\n\"\n\"/etc/shutdown.allow\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:221\nmsgid \"\"\n\"A lot of users forget to give the I<time> argument and are then puzzled by \"\n\"the error message B<shutdown> produces. The I<time> argument is mandatory; \"\n\"in 90 percent of all cases this argument will be the word B<now>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:227\nmsgid \"\"\n\"B<init>(8) can only capture CTRL-ALT-DEL and start B<shutdown> in console \"\n\"mode.  If the system is running the X window System, the X server processes \"\n\"all key strokes. Some X11 environments make it possible to capture \"\n\"CTRL-ALT-DEL, but what exactly is done with that event depends on that \"\n\"environment.\"\nmsgstr \"\"\n\n#. {{{  Author\n#. type: Plain text\n#: ../shutdown.8:232\nmsgid \"\"\n\"B<shutdown> wasn't designed to be run setuid. I</etc/shutdown.allow> is not \"\n\"used to find out who is executing shutdown, it ONLY checks who is currently \"\n\"logged in on (one of the) console(s).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../shutdown.8:243\nmsgid \"B<fsck>(8), B<init>(8), B<halt>(8), B<poweroff>(8), B<reboot>(8)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"SULOGIN\"\nmsgstr \"\"\n\n#. type: TH\n#: ../sulogin.8:18\n#, no-wrap\nmsgid \"17 Jan 2006\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:21\nmsgid \"sulogin - Single-user login\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:27\nmsgid \"B<sulogin> [ B<-e> ] [ B<-p> ] [ B<-t> I<SECONDS> ] [ I<TTY> ]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:35\nmsgid \"\"\n\"I<sulogin> is invoked by B<init>(8) when the system goes into single user \"\n\"mode.  (This is done through an entry in B<inittab>(5).)  B<init>(8) also \"\n\"tries to execute B<sulogin> when the boot loader (e.g., B<grub>(8))  passes \"\n\"it the B<-b> option.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:37\nmsgid \"The user is prompted:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:39\nmsgid \"Give root password for system maintenance\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:41\nmsgid \"(or type Control-D for normal startup):\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:45\nmsgid \"\"\n\"B<sulogin> will be connected to the current terminal, or to the optional \"\n\"device that can be specified on the command line (typically \"\n\"I</dev/console>).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:48\nmsgid \"\"\n\"If the B<-t> option is used then the program only waits the given number of \"\n\"seconds for user input.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:55\nmsgid \"\"\n\"If the B<-p> option is used then the single-user shell is invoked with a \"\n\"I<dash> as the first character in I<argv[0]>.  This causes the shell process \"\n\"to behave as a login shell.  The default is B<not> to do this, so that the \"\n\"shell will B<not> read I</etc/profile> or I<$HOME/.profile> at startup.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:59\nmsgid \"\"\n\"After the user exits the single-user shell, or presses control-D at the \"\n\"prompt, the system will (continue to) boot to the default runlevel.\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:59\n#, no-wrap\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:64\nmsgid \"\"\n\"B<sulogin> looks for the environment variable B<SUSHELL> or B<sushell> to \"\n\"determine what shell to start. If the environment variable is not set, it \"\n\"will try to execute root's shell from I</etc/passwd>. If that fails it will \"\n\"fall back to I</bin/sh>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:69\nmsgid \"\"\n\"This is very valuable together with the B<-b> option to B<init>(8). To boot \"\n\"the system into single user mode, with the root file system mounted \"\n\"read/write, using a special \\\"fail safe\\\" shell that is statically linked \"\n\"(this example is valid for the LILO bootprompt)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:71\nmsgid \"boot: linux -b rw sushell=/sbin/sash\"\nmsgstr \"\"\n\n#. type: SH\n#: ../sulogin.8:71\n#, no-wrap\nmsgid \"FALLBACK METHODS\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:76\nmsgid \"\"\n\"B<sulogin> checks the root password using the standard method \"\n\"(B<getpwnam>(3))  first.  Then, if the B<-e> option was specified, \"\n\"B<sulogin> examines these files directly to find the root password:\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:78\nmsgid \"/etc/passwd,\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:80\nmsgid \"/etc/shadow (if present)\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:84\nmsgid \"\"\n\"If they are damaged or nonexistent, B<sulogin> will start a root shell \"\n\"without asking for a password. Only use the B<-e> option if you are sure the \"\n\"console is physically protected against unauthorized access.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../sulogin.8:90\nmsgid \"B<init>(8), B<inittab>(5)\"\nmsgstr \"\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"UTMPDUMP\"\nmsgstr \"\"\n\n#. type: TH\n#: ../utmpdump.1:18\n#, no-wrap\nmsgid \"Februar 8, 2010\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:21\nmsgid \"utmpdump - dump UTMP and WTMP files in raw format\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:25\nmsgid \"B<utmpdump> [B<-froh>] I<filename>\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:28\nmsgid \"\"\n\"B<utmpdump> is a simple program to dump UTMP and WTMP files in raw format, \"\n\"so they can be examined.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:31\nmsgid \"output appended data as the file grows.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:33\nmsgid \"reverse. Write back edited login information into utmp or wtmp files.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:35\nmsgid \"use old libc5 format.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:37\nmsgid \"usage information.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:41\nmsgid \"\"\n\"utmpdump can be useful in cases of corrupted utmp or wtmp entries.  It can \"\n\"dump out utmp/wtmp to an ASCII file, then that file can be edited to remove \"\n\"bogus entries and reintegrated, using\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:46\n#, no-wrap\nmsgid \"B<utmpdump -r E<lt> ascii file E<gt> wtmp>\\n\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:52\nmsgid \"but be warned as B<utmpdump> was written for debugging purpose only.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:60\nmsgid \"\"\n\"You may B<not> use the option B<-r> as the format for the utmp/wtmp files \"\n\"strongly depends on the input format. This tool was B<not> written for \"\n\"normal use but for debugging.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:62\nmsgid \"Michael Krapp\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../utmpdump.1:66\nmsgid \"B<last>(1), B<w>(1), B<who>(1), B<utmp>(5),\"\nmsgstr \"\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"WALL\"\nmsgstr \"\"\n\n#. type: TH\n#: ../wall.1:18\n#, no-wrap\nmsgid \"15 April 2003\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:22\nmsgid \"wall - send a message to everybody's terminal\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:27\nmsgid \"B<wall> [B<-n>] [I<message>]\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:43\nmsgid \"\"\n\"B<Wall> sends a message to everybody logged in with their B<mesg>(1)  \"\n\"permission set to B<yes>.  The message can be given as an argument to \"\n\"B<wall>, or it can be sent to B<wall>'s standard input.  When using the \"\n\"standard input from a terminal, the message should be terminated with the \"\n\"B<EOF> key (usually Control-D).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:51\nmsgid \"\"\n\"The length of the message is limited to 20 lines.  For every invocation of \"\n\"B<wall> a notification will be written to syslog, with facility B<LOG_USER> \"\n\"and level B<LOG_INFO>.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:61\nmsgid \"\"\n\"Suppresses the normal banner printed by B<wall>, changing it to \\\"Remote \"\n\"broadcast message\\\".  This option is only available for root if B<wall> is \"\n\"installed set-group-id, and is used by B<rpc.walld>(8).\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:69\nmsgid \"\"\n\"B<wall> ignores the B<TZ> variable - the time printed in the banner is based \"\n\"on the system's local time.\"\nmsgstr \"\"\n\n#. type: Plain text\n#: ../wall.1:73\nmsgid \"B<mesg>(1), B<rpc.rwalld>(8)\"\nmsgstr \"\"\n"
  },
  {
    "path": "man/poweroff.8",
    "content": ".so man8/halt.8\n"
  },
  {
    "path": "man/readbootlog.1",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2004 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH READBOOTLOG 1 \"NOV 12, 2018\" \"sysvinit \" \"User Commands\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\nreadbootlog \\- show contents of the boot log, stripping away control characters\n.\\\"}}}\n.\\\"{{{  Synopsis\n.SH SYNOPSIS\n.B readbootlog\n.RB [ \\-h ]\n[\\-\\fBf\\fP \\fIfile\\/\\fP]\n.br\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\n.B readbootlog\nis a tool for reading the boot log (by default \\fI/var/log/boot\\fP). The program\nstrips away control characters and non-human readable contents from the log\nfile. Output is dumped to the terminal where it can be piped or redirected\nto a file.\n.\\\"}}}\n.\\\"{{{  Options\n.SH OPTIONS\n.IP \"\\fB\\-f\\fP \\fIfile\\fP\"\nTells \\fBreadbootlog\\fP to use a specific file instead of \\fI/var/log/boot\\fP.\n.IP \\fB\\-h\\fP\nDisplays a brief help message.\n.\\\"{{{  Files\n.SH FILES\n/var/log/boot\n.\\\"}}}\n.\\\"{{{  Author\n.SH AUTHOR\n.MT jsmith@\\:resonatingmedia\\:.com\nJesse Smith\n.ME\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR bootlogd (8)\n.\\\"}}}\n"
  },
  {
    "path": "man/reboot.8",
    "content": ".so man8/halt.8\n"
  },
  {
    "path": "man/runlevel.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1997 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH RUNLEVEL 8 \"May 27, 1997\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.SH NAME\nrunlevel \\- find the previous and current system runlevel\n.SH SYNOPSIS\n.B runlevel\n.RI [ utmp ]\n.SH DESCRIPTION\n.B runlevel\nreads the system\n.I utmp\nfile (typically\n.IR /var/run/utmp )\nto locate the runlevel record, and then\nprints the previous and current system runlevel on its standard output,\nseparated by a single space.\nIf there is no previous system runlevel,\nthe letter \\fBN\\fP will be printed instead.\n.PP\nIf no\n.I utmp\nfile exists, and if no runlevel record can be found in the\n.I /var/run/runlevel\nfile,\n.B runlevel\nprints the word \\fBunknown\\fP and exits with an error.\n.PP\n.B Runlevel\ncan be used in \\fIrc\\fP scripts as a substitute for the System-V\n\\fBwho \\-r\\fP command.\nHowever, in newer versions of \\fBinit\\fP(8) this information\nis also available in the environment variables \\fBRUNLEVEL\\fP and\n\\fBPREVLEVEL\\fP.\n.SH OPTIONS\n.\\\"{{{ utmp\n.IP \\fIutmp\\fP\nThe name of the \\fIutmp\\fP file to read.\n.\\\"}}}\n.SH SEE ALSO\n.BR init (8),\n.BR utmp (5)\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n"
  },
  {
    "path": "man/shutdown.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2003 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.\\\"{{{}}}\n.\\\"{{{  Title\n.TH SHUTDOWN 8 \"November 12, 2003\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.\\\"}}}\n.\\\"{{{  Name\n.SH NAME\nshutdown \\- bring the system down\n.\\\"}}}\n.\\\"{{{  Synopsis\n.SH SYNOPSIS\n.B /sbin/shutdown\n.RB [ \\-akrhPHfFncqQ ]\n.RB [ \\-t\n.IR sec ]\n.I time\n.RI [ \"warning message\" ]\n.\\\"}}}\n.\\\"{{{  Description\n.SH DESCRIPTION\n\\fBshutdown\\fP brings the system down in a secure way.  All logged-in users are\nnotified that the system is going down, and \\fBlogin\\fP(1) is blocked.\nIt is possible to shut the system down immediately or after a specified delay.\nAll processes are first notified that the system is going down by the\nsignal \\fBSIGTERM\\fP.  This gives programs like \\fBvi\\fP(1)\nthe time to save the file being edited,\nmail and news processing programs a chance to exit cleanly, etc.\n\\fBshutdown\\fP does its job by signalling the \\fBinit\\fP process,\nasking it to change the runlevel.\nRunlevel \\fB0\\fP is used to halt the system, runlevel \\fB6\\fP is used\nto reboot the system, and runlevel \\fB1\\fP is used to put to system into\na state where administrative tasks can be performed; this is the default\nif neither the \\fB\\-h\\fP or \\fB\\-r\\fP flag is given to \\fBshutdown\\fP.\nTo see which actions are taken on halt or reboot see the appropriate\nentries for these runlevels in the file \\fI/etc/inittab\\fP.\n.\\\"}}}\n.\\\"{{{  Options\n.SH OPTIONS\n.\\\"{{{  -a\n.IP \"\\fB\\-a\\fP\nUse \\fI/etc/shutdown.allow\\fP.\n.\\\"}}}\n.\\\"{{{  -k\n.IP \\fB\\-k\\fP\nDon't really shutdown; only send the warning messages to everybody.\n.\\\"}}}\n.\\\"{{{  -r\n.IP \\fB\\-r\\fP\nReboot after shutdown.\n.\\\"}}}\n.\\\"{{{  -h\n.IP \\fB\\-h\\fP\nHalt or power off after shutdown.\nUsually used with the \\fB\\-P\\fP or \\fB\\-H\\fP flags,\ndepending on whether we want to poweroff or\nsimply stop the operating system.\n.\\\"}}}\n.\\\"{{{  -P\n.IP \\fB\\-P\\fP\nModifier to the \\fB\\-h\\fP flag. Halt action is to turn off the power.\nMust be used with the \\fB\\-h\\fP flag.\n.\\\"}}}\n.\\\"{{{  -H\n.IP \\fB\\-H\\fP\nModifier to the \\fB\\-h\\fP flag.  Halt action is to halt or drop into boot\nmonitor on systems that support it.  Must be used with the \\fB\\-h\\fP flag.\nHalting is often used to run through the shutdown process and leave\noutput on the screen for debugging purposes. Or when the user wants the OS to\nstop, but leave the power on. To power off at the end of the shutdown sequence\nuse the \\fB\\-P\\fP modifier instead.\n.\\\"}}}\n.\\\"{{{  -f\n.IP \\fB\\-f\\fP\nSkip \\fBfsck\\fP(8) on reboot.\n.\\\"}}}\n.\\\"{{{  -F\n.IP \\fB\\-F\\fP\nForce \\fBfsck\\fP(8) on reboot.\n.\\\"}}}\n.\\\"{{{  -n\n.IP \\fB\\-n\\fP\n[DEPRECATED] Don't call \\fBinit\\fP(8) to do the shutdown but do it ourself.\nThe use of this option is discouraged, and its results are not always what\nyou'd expect.\n.\\\"}}}\n.\\\"{{{  -c\n.IP \\fB\\-c\\fP\nCancel a waiting shutdown. (\\fBshutdown now\\fP is no longer waiting.) With\nthis option it is of course not possible to give the time argument, but\nyou can enter explanatory message arguments on the command line that\nwill be sent to all users.\n.\\\"{{{  -q\n.IP \\fB\\-q\nReduce the number of warnings \\fBshutdown\\fP displays.\nUsually \\fBshutdown\\fP displays\nwarnings every 15 minutes and then every minute in the last 10 minutes of the\ncountdown until \\fItime\\fP is reached. When \\fB\\-q\\fP is specified\n\\fBshutdown\\fP only warns at 60 minute intervals, at the 10 minute mark,\nat the 5 minute mark, and when the shutdown process actually happens.\n.\\\"{{{  -Q\n.IP \\fB\\-Q\nSilence warnings prior to shutting down. Usually \\fBshutdown\\fP displays\nwarnings every 15 minutes and then every minute in the last 10 minutes of the\ncountdown until \\fItime\\fP is reached. When \\fB\\-Q\\fP is specified\n\\fBshutdown\\fP only warns when the shutdown process actually happens. All\nother warning intervals are suppressed.\n.\\\"}}}\n.\\\"{{{  -t sec\n.IP \"\\fB\\-t\\fP \\fIsec\\fP\"\nTell \\fBinit\\fP(8) to wait \\fIsec\\fP seconds between sending all processes the\nwarning (\\fBSIGTERM\\fP) and the kill signal (\\fBSIGKILL\\fP),\nbefore changing to another runlevel.\nThe default time, if no value is specified, between these two signals is\nthree seconds.\nWarning: when \\fBshutdown\\fP calls \\fBinit\\fP(8) to perform the shutdown\n(the default behavior),\n\\fBinit\\fP(8) checks to see if all processes have terminated\nand will stop waiting early once its children have all terminated.\nWhen \\fBshutdown\\fP is called with the \\fB\\-n\\fP flag,\nit waits the full time specified\n(or three seconds) even if all other processes have terminated.\n.\\\"}}}\n.\\\"{{{  time\n.IP \\fItime\\fP\nWhen to shutdown.\n.\\\"}}}\n.\\\"{{{  warning-message\n.IP \"\\fIwarning message\\fP\"\nMessage to send to all users.\n.\\\"}}}\n.PP\nThe \\fItime\\fP argument can have different formats.  First, it can be an\nabsolute time in the format \\fIhh:mm\\fP, in which \\fIhh\\fP is the hour\n(1 or 2 digits) and \\fImm\\fP is the minute of the hour (in two digits).\nSecond, it can be in the format \\fB+\\fP\\fIm\\fP, in which \\fIm\\fP is the\nnumber of minutes to wait.  Third, it can be in the format \\fB+\\fP\\fIhh:mm\\fP,\nin which \\fIhh:mm\\fP is the number of hours and minutes to wait.\nThe word \\fBnow\\fP is an alias for \\fB+0\\fP.\n.PP\nIf \\fBshutdown\\fP is called with a delay, it will create the advisory file\n.I /etc/nologin\nwhich causes programs such as \\fBlogin\\fP(1) to not allow new user\nlogins. This file is created five minutes before the shutdown sequence\nstarts. \\fBshutdown\\fP removes this file if it is stopped before it\ncan signal init (i.e., it is cancelled or something goes wrong).\nIt also removes it before calling \\fBinit\\fP(8) to change the runlevel.\n.PP\nThe \\fB\\-f\\fP flag means `reboot fast'.  This only creates an advisory\nfile \\fI/fastboot\\fP which can be tested by the system when it comes\nup again.  The boot rc file can test if this file is present, and decide not\nto run \\fBfsck\\fP(8) since the system has been shut down in the proper way.\nAfter that, the boot process should remove \\fI/fastboot\\fP.\n.PP\nThe \\fB\\-F\\fP flag means `force fsck'.  This only creates an advisory\nfile \\fI/forcefsck\\fP which can be tested by the system when it comes\nup again.  The boot rc file can test if this file is present, and decide\nto run \\fBfsck\\fP(8) with a special `force' flag so that even properly\nunmounted file systems get checked.\nAfter that, the boot process should remove \\fI/forcefsck\\fP.\n.PP\nThe \\fB\\-n\\fP flag causes \\fBshutdown\\fP not to call \\fBinit\\fP(8),\nbut to kill all running processes itself.\n\\fBshutdown\\fP will then turn off quota, accounting, and swapping\nand unmount all file systems.\n.\\\"}}}\n.\\\"{{{  Files\n.SH ACCESS CONTROL\n\\fBshutdown\\fP can be called from \\fBinit\\fP(8) when the magic keys\n\\fBCTRL-ALT-DEL\\fP are pressed, by creating an appropriate entry in\n\\fI/etc/inittab\\fP. This means that everyone who has physical access\nto the console keyboard can shut the system down. To prevent this,\n\\fBshutdown\\fP can check to see if an authorized user is logged in on\none of the virtual consoles. If \\fBshutdown\\fP is called with the \\fB\\-a\\fP\nargument (add this to the invocation of shutdown in \\fI/etc/inittab\\fP),\nit checks to see if the file \\fI/etc/shutdown.allow\\fP is present.\nIt then compares the login names in that file with the list of people\nthat are logged in on a virtual console (from \\fI/var/run/utmp\\fP). Only\nif one of those authorized users \\fBor root\\fP is logged in, it will\nproceed. Otherwise it will write the message\n.sp 1\n.nf\n\\fBshutdown: no authorized users logged in\\fP\n.fi\n.sp 1\nto the (physical) system console. The format of \\fI/etc/shutdown.allow\\fP\nis one user name per line. Empty lines and comment lines (prefixed by a\n\\fB#\\fP) are allowed. Currently there is a limit of 32 users in this file.\n.sp 1\nNote that if \\fI/etc/shutdown.allow\\fP is not present, the \\fB\\-a\\fP\nargument is ignored.\n.SH HALT OR POWEROFF\nThe \\fB\\-H\\fP option just sets the \\fBinit\\fP environment variable\n\\fBINIT_HALT\\fP to \\fBHALT\\fP, and the \\fB\\-P\\fP option just sets\nthat variable to \\fBPOWEROFF\\fP.\nThe script (usually \\fI/etc/init.d/halt\\fP) that calls\nthe \\fBhalt\\fP(8) program as the last thing in the shutting down sequence should\ncheck this environment variable and call the \\fBhalt\\fP(8) program with\nthe right options for these options to actually have any effect.\n.SH FILES\n.nf\n/fastboot\n/etc/inittab\n/etc/init.d/halt\n/etc/init.d/reboot\n/etc/shutdown.allow\n.fi\n.\\\"}}}\n.SH NOTES\nA lot of users forget to give the \\fItime\\fP argument\nand are then puzzled by the error message \\fBshutdown\\fP produces. The\n\\fItime\\fP argument is mandatory; in 90 percent of all cases this argument\nwill be the word \\fBnow\\fP.\n.PP\n\\fBinit\\fP(8) can only capture CTRL-ALT-DEL and\nstart \\fBshutdown\\fP in console mode.\nIf the system is running the X window System, the X server processes\nall key strokes. Some X11 environments make it possible to capture\nCTRL-ALT-DEL, but what exactly is done with that event depends on\nthat environment.\n.PP\n\\fBshutdown\\fP wasn't designed to be run setuid. \\fI/etc/shutdown.allow\\fP is\nnot used to find out who is executing shutdown, it ONLY checks who\nis currently logged in on (one of the) console(s).\n.\\\"{{{  Author\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.\\\"}}}\n.\\\"{{{  See also\n.SH \"SEE ALSO\"\n.BR fsck (8),\n.BR init (8),\n.BR halt (8),\n.BR poweroff (8),\n.BR reboot (8)\n.\\\"}}}\n"
  },
  {
    "path": "man/sulogin.8",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2006 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH SULOGIN 8 \"17 Jan 2006\" \"sysvinit \" \"Linux System Administrator's Manual\"\n.SH NAME\nsulogin \\- Single-user login\n.SH SYNOPSIS\n.B sulogin\n[ \\fB\\-e\\fP ]\n[ \\fB\\-p\\fP ]\n[ \\fB\\-t\\fP \\fISECONDS\\fP ]\n[ \\fITTY\\fP ]\n.SH DESCRIPTION\n.I sulogin\nis invoked by \\fBinit\\fP(8) when the system goes into single user mode.\n(This is done through an entry in \\fBinittab\\fP(5).)\n\\fBinit\\fP(8) also\ntries to execute \\fBsulogin\\fP when\nthe boot loader (e.g., \\fBgrub\\fP(8))\npasses it the \\fB\\-b\\fP option.\n.PP\nThe user is prompted:\n.IP \"\" .5i\nGive root password for system maintenance\n.br\n(or type Control\\-D for normal startup):\n.PP\n\\fBsulogin\\fP will be connected to the current terminal, or to the\noptional device that can be specified on the command line\n(typically \\fI/dev/console\\fP).\n.PP\nIf the \\fB\\-t\\fP option is used then the program only waits\nthe given number of seconds for user input.\n.PP\nIf the \\fB\\-p\\fP option is used then the single-user shell is invoked\nwith a \\fIdash\\fP as the first character in \\fIargv[0]\\fP.\nThis causes the shell process to behave as a login shell.\nThe default is \\fBnot\\fP to do this,\nso that the shell will \\fBnot\\fP read \\fI/etc/profile\\fP\nor \\fI$HOME/.profile\\fP at startup.\n.PP\nAfter the user exits the single-user shell,\nor presses control\\-D at the prompt,\nthe system will (continue to) boot to the default runlevel.\n.SH ENVIRONMENT VARIABLES\n\\fBsulogin\\fP looks for the environment variable \\fBSUSHELL\\fP or\n\\fBsushell\\fP to determine what shell to start. If the environment variable\nis not set, it will try to execute root's shell from \\fI/etc/passwd\\fP. If that\nfails it will fall back to \\fI/bin/sh\\fP.\n.PP\nThis is very valuable together with the \\fB\\-b\\fP option to \\fBinit\\fP(8). To boot\nthe system into single user mode, with the root file system mounted read/write,\nusing a special \"fail safe\" shell that is statically linked (this example\nis valid for the LILO bootprompt)\n.PP\nboot: linux \\-b rw sushell=/sbin/sash\n.SH FALLBACK METHODS\n\\fBsulogin\\fP checks the root password using the standard method (\\fBgetpwnam\\fP(3))\nfirst.\nThen, if the \\fB\\-e\\fP option was specified,\n\\fBsulogin\\fP examines these files directly to find the root password:\n.PP\n/etc/passwd,\n.br\n/etc/shadow (if present)\n.PP\nIf they are damaged or nonexistent, \\fBsulogin\\fP will start a root shell\nwithout asking for a password. Only use the \\fB\\-e\\fP option if you\nare sure the console is physically protected against unauthorized access.\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n.SH SEE ALSO\n.BR init (8),\n.BR inittab (5)\n"
  },
  {
    "path": "man/telinit.8",
    "content": ".so man8/init.8\n"
  },
  {
    "path": "man/utmpdump.1",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 2010 Michael Krapp\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by \n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  \n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH UTMPDUMP 1 \"Februar 8, 2010\" \"sysvinit \" \"User Commands\"\n.SH NAME\nutmpdump \\- dump UTMP and WTMP files in raw format\n.SH SYNOPSIS\n.B utmpdump\n.RB [ \\-froh ]\n.I filename\n.SH DESCRIPTION\n\\fButmpdump\\fP is a simple program to dump UTMP and WTMP files\nin raw format, so they can be examined.\n.SH OPTIONS\n.IP \\fB\\-f\\fP\noutput appended data as the file grows.\n.IP \"\\fB\\-r\\fP\"\nreverse. Write back edited login information into utmp or wtmp files.\n.IP \\fB\\-o\\fP\nuse old libc5 format.\n.IP \\fB\\-h\\fP\nusage information.\n.PP\nutmpdump can be useful in cases of corrupted utmp or wtmp entries.\nIt can dump out utmp/wtmp to an ASCII file, then that file can\nbe edited to remove bogus entries and reintegrated, using\n.PP \n.sp 1\n.in +1c\n.nf\n\\fButmpdump -r < ascii file > wtmp\\fP\n.fi\n.in -1c\n.sp 1\nbut be warned as\n.B utmpdump\nwas written for debugging purpose only.\n.SH BUGS\nYou may\n.B not\nuse the option \\fB\\-r\\fP as the format for the\nutmp/wtmp files strongly depends on the\ninput format. This tool was\n.B not\nwritten for normal use but for debugging.\n.SH AUTHOR\nMichael Krapp\n.SH \"SEE ALSO\"\n.BR last (1),\n.BR w (1),\n.BR who (1),\n.BR utmp (5),\n"
  },
  {
    "path": "man/wall.1",
    "content": "'\\\" -*- coding: UTF-8 -*-\n.\\\" Copyright (C) 1998-2003 Miquel van Smoorenburg.\n.\\\"\n.\\\" This program is free software; you can redistribute it and/or modify\n.\\\" it under the terms of the GNU General Public License as published by\n.\\\" the Free Software Foundation; either version 2 of the License, or\n.\\\" (at your option) any later version.\n.\\\"\n.\\\" This program is distributed in the hope that it will be useful,\n.\\\" but WITHOUT ANY WARRANTY; without even the implied warranty of\n.\\\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n.\\\" GNU General Public License for more details.\n.\\\"\n.\\\" You should have received a copy of the GNU General Public License\n.\\\" along with this program; if not, write to the Free Software\n.\\\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n.\\\"\n.TH WALL 1 \"15 April 2003\" \"sysvinit \" \"User Commands\"\n\n.SH NAME\nwall - send a message to everybody's terminal\n\n.SH SYNOPSIS\n.B wall\n.RB [ \\-n ]\n.RI [ message ]\n\n.SH DESCRIPTION\n.B Wall\nsends a message to everybody logged in with their\n.BR mesg (1)\npermission\nset to\n.BR yes .\nThe message can be given as an argument to\n.BR wall ,\nor it can be sent to\n.BR wall 's\nstandard input.  When using the standard input from a terminal,\nthe message should be terminated with the\n.B EOF\nkey (usually Control-D).\n.PP\nThe length of the message is limited to 20 lines.\nFor every invocation of\n.B wall\na notification will be written to syslog, with facility\n.B LOG_USER\nand level\n.BR LOG_INFO .\n\n.SH OPTIONS\n.IP \\fB\\-n\\fP\nSuppresses the normal banner printed by\n.BR wall ,\nchanging it to \"Remote broadcast message\".\nThis option is only available for root if\n.B wall\nis installed set-group-id, and is used by\n.BR rpc.walld (8).\n.PP\n\n.SH ENVIRONMENT\n.B wall\nignores the\n.B TZ\nvariable - the time printed in the banner is based on the system's\nlocal time.\n\n.SH SEE ALSO\n.BR mesg (1),\n.BR rpc.rwalld (8)\n\n.SH AUTHOR\n.MT miquels@\\:cistron\\:.nl\nMiquel van Smoorenburg\n.ME\n"
  },
  {
    "path": "src/.gitignore",
    "content": "bootlogd\nfstab-decode\nhalt\ninit\nkillall5\nlast\nlogsave\nmesg\nreadbootlog\nrunlevel\nshutdown\nsulogin\nutmpdump\nwall\n"
  },
  {
    "path": "src/Makefile",
    "content": "#\n# Makefile\tMakefile for the systemV init suite.\n#\t\tTargets:   all      compiles everything\n#\t\t           install  installs the binaries (not the scripts)\n#                          clean    cleans up object files\n#\t\t\t   clobber  really cleans up\n#\n# Version:\t@(#)Makefile  2.85-13  23-Mar-2004  miquels@cistron.nl\n#\n\nCPPFLAGS =\nCFLAGS  ?= -O2\noverride CFLAGS += -ansi -fomit-frame-pointer -fstack-protector-strong -W -Wall -Wunreachable-code -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -D_XOPEN_SOURCE -D_GNU_SOURCE -DVERSION=\\\"$(VERSION)\\\"\noverride CFLAGS += $(shell getconf LFS_CFLAGS)\nSTATIC\t=\nMANDB\t:= s@^\\('\\\\\\\\\\\"\\)[^\\*-]*-\\*- coding: [^[:blank:]]\\+ -\\*-@\\1@\n\n#\n# Leave empty if the mountpoint(1) command from util-linux 2.20\n# and above should be used, otherwise set it to yes.\n#\nMNTPOINT=\n\n# For some known distributions we do not build all programs, otherwise we do.\nBIN\t=\nSBIN\t= init halt shutdown runlevel killall5 fstab-decode logsave\nUSRBIN\t= last mesg readbootlog\n\nMAN1\t= last.1 lastb.1 mesg.1 readbootlog.1\nMAN5\t= initscript.5 inittab.5 initctl.5\nMAN8\t= halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8\nMAN8\t+= shutdown.8 telinit.8 fstab-decode.8 logsave.8\n\nifeq ($(DISTRO),)\nSBIN\t+= sulogin bootlogd\nUSRBIN\t+= utmpdump wall\nMAN1\t+= utmpdump.1 wall.1\nMAN8\t+= sulogin.8 bootlogd.8\nendif\n\nifeq ($(DISTRO),Debian)\nCPPFLAGS+= -DACCTON_OFF\nSBIN\t+= sulogin bootlogd\nMAN8\t+= sulogin.8 bootlogd.8\nMANDB\t:=\nendif\n\nifeq ($(DISTRO),Owl)\nUSRBIN\t+= wall\nMAN1\t+= wall.1\nMANDB\t:=\nendif\n\nifeq ($(DISTRO),SuSE)\nCPPFLAGS+= -DUSE_SYSFS -DSANE_TIO -DSIGINT_ONLYONCE -DUSE_ONELINE\nSBIN\t+= sulogin\nUSRBIN\t+= utmpdump\nMAN1\t+= utmpdump.1\nMAN8\t+= sulogin.8\nMANDB\t:=\nendif\n\nifeq ($(MNTPOINT),yes)\nBIN\t+= mountpoint\nMAN1\t+= mountpoint.1\nendif\n\nID\t\t= $(shell id -u)\nBIN_OWNER\t= root\nBIN_GROUP\t= root\nBIN_COMBO\t= $(BIN_OWNER):$(BIN_GROUP)\nifeq ($(ID),0)\n  INSTALL_EXEC\t= install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 755\n  INSTALL_DATA\t= install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 644\nelse\n  INSTALL_EXEC\t= install -m 755\n  INSTALL_DATA\t= install -m 644\nendif\nINSTALL_DIR\t= install -m 755 -d \n\nROOT         ?= $(DESTDIR)\nusrdir       ?= /usr\nbase_bindir  ?= /bin\nbase_sbindir ?= /sbin\nbindir       ?= /$(usrdir)/bin\nsysconfdir   ?= /etc\nincludedir   ?= /$(usrdir)/include\nmandir       ?= /$(usrdir)/share/man\n\nifeq ($(WITH_SELINUX),yes)\n  SELINUX_DEF\t=  -DWITH_SELINUX\n  INITLIBS\t+= -lselinux\n  SULOGINLIBS\t= -lselinux\t\nelse\n  SELINUX_DEF\t=\n  INITLIBS\t=\n  SULOGINLIBS\t=\nendif\n\n# Additional libs for GNU libc.\nifneq ($(wildcard $(ROOT)/$(usrdir)/lib*/libcrypt.*),)\n  SULOGINLIBS\t+= -lcrypt\nendif\n\n# Additional libs for GNU libc / multiarch on Debian based systems.\nifneq ($(wildcard $(ROOT)/$(usrdir)/lib/*/libcrypt.*),)\nifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt)\n  SULOGINLIBS\t+= -lcrypt\nendif\nendif\n\nall:\t\t$(BIN) $(SBIN) $(USRBIN)\n\n#%: %.o\n#\t$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)\n#%.o: %.c\n#\t$(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@\n\ninit:\t\tLDLIBS += $(INITLIBS) $(STATIC)\ninit:\t\tinit.o init_utmp.o runlevellog.o\n\nhalt:\t\tLDLIBS += $(STATIC)\nhalt:\t\thalt.o ifdown.o hddown.o utmp.o runlevellog.o\n\nlast:\t\tLDLIBS += $(STATIC)\nlast:\t\tlast.o\n\nlogsave:\tLDLIBS += $(STATIC)\nlogsave:\tlogsave.o\n\nmesg:\t\tLDLIBS += $(STATIC)\nmesg:\t\tmesg.o\n\nmountpoint:\tLDLIBS += $(STATIC)\nmountpoint:\tmountpoint.o\n\nutmpdump:\tLDLIBS += $(STATIC)\nutmpdump:\tutmpdump.o\n\nrunlevel:\tLDLIBS += $(STATIC)\nrunlevel:\trunlevel.o runlevellog.o\n\nsulogin:\tLDLIBS += $(SULOGINLIBS) $(STATIC)\nsulogin:\tsulogin.o consoles.o\n\nwall:\t\tLDLIBS += $(STATIC)\nwall:\t\tdowall.o wall.o\n\nshutdown:\tLDLIBS += $(STATIC)\nshutdown:\tdowall.o shutdown.o utmp.o\n\nbootlogd:\tLDLIBS += -lutil $(STATIC)\nbootlogd:\tbootlogd.o\n\nreadbootlog:\tLDLIBS += $(STATIC)\nreadbootlog:\treadbootlog.o \n\nfstab-decode:\tLDLIBS += $(STATIC)\nfstab-decode:\tfstab-decode.o\n\nsulogin.o:\tCPPFLAGS += $(SELINUX_DEF)\nsulogin.o:\tsulogin.c \n\nrunlevellog.o:\trunlevellog.h runlevellog.c paths.h\n\ninit.o:\t\tCPPFLAGS += $(SELINUX_DEF)\ninit.o:\t\tinit.c init.h initreq.h paths.h reboot.h runlevellog.h runlevellog.c set.h \n\nutmp.o:\t\t\n\ninit_utmp.o:\tCPPFLAGS += -DINIT_MAIN\ninit_utmp.o:\tutmp.c init.h initreq.h paths.h\n\t\t$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<\n\nbootlogd.o:\tbootlogd.c bootlogd.h\n\nreadbootlog.o:\treadbootlog.c\n \nutmpdump.o:\tutmpdump.c oldutmp.h\n\nshutdown.o:\tshutdown.c paths.h reboot.h initreq.h init.h\n\nhalt.o:\t\thalt.c reboot.h paths.h runlevellog.c runlevellog.h\n\nlast.o:\t\tlast.c oldutmp.h\n\nlogsave.o:\tlogsave.c\n\nconsoles.o:\tconsoles.c consoles.h\n\ncleanobjs:\n\t\trm -f *.o *.bak\n\nclean:\t\tcleanobjs clobber\n\nclobber:\tcleanobjs\n\t\trm -f $(BIN) $(SBIN) $(USRBIN)\n\ndistclean:\tclobber\n\ninstall:\tall\n\t\t$(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/\n\t\t$(INSTALL_DIR) $(ROOT)$(bindir)/\n\t\tfor i in $(BIN); do \\\n\t\t\t$(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \\\n\t\tdone\n\t\tfor i in $(SBIN); do \\\n\t\t\t$(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \\\n\t\tdone\n\t\tfor i in $(USRBIN); do \\\n\t\t\t$(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \\\n\t\tdone\n\t\t# $(INSTALL_DIR) $(ROOT)/$(sysconfdir)/\n\t\t$(INSTALL_DIR) $(ROOT)/$(sysconfdir)/inittab.d\n\t\t# $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/$(sysconfdir)/\n\t\tln -sf halt $(ROOT)$(base_sbindir)/reboot\n\t\tln -sf halt $(ROOT)$(base_sbindir)/poweroff\n\t\tln -sf init $(ROOT)$(base_sbindir)/telinit\n\t\tln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof\n\t\tif [ ! -f $(ROOT)$(bindir)/lastb ]; then \\\n\t\t\tln -sf last $(ROOT)$(bindir)/lastb; \\\n\t\tfi\n\t\t$(INSTALL_DIR) $(ROOT)$(includedir)/\n\t\t$(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/\n\t\tfor lang in  '' $(patsubst ../man/po/%.po,%,$(wildcard ../man/po/??.po)); do \\\n\t\t\t$(INSTALL_DIR) $(ROOT)$(mandir)/$$lang/man1; \\\n\t\t\t$(INSTALL_DIR) $(ROOT)$(mandir)/$$lang/man5; \\\n\t\t\t$(INSTALL_DIR) $(ROOT)$(mandir)/$$lang/man8; \\\n\t\tdone\n\t\tfor man in $(MAN1) $(subst ../man/,,$(foreach man,$(MAN1),$(wildcard ../man/??/$(man)))); do \\\n\t\t\tinstall_target=$(ROOT)$(mandir)/$${man%$${man##*/}}man1/$${man##*/} ; \\\n\t\t\t$(INSTALL_DATA) ../man/$$man $$install_target ; \\\n\t\t\tsed -i \"1{ $(MANDB); }\" $$install_target ; \\\n\t\tdone\n\t\tfor man in $(MAN5) $(subst ../man/,,$(foreach man,$(MAN5),$(wildcard ../man/??/$(man)))); do \\\n\t\t\tinstall_target=$(ROOT)$(mandir)/$${man%$${man##*/}}man5/$${man##*/} ; \\\n\t\t\t$(INSTALL_DATA) ../man/$$man $$install_target ; \\\n\t\t\tsed -i \"1{ $(MANDB); }\" $$install_target ; \\\n\t\tdone\n\t\tfor man in $(MAN8) $(subst ../man/,,$(foreach man,$(MAN8),$(wildcard ../man/??/$(man)))); do \\\n\t\t\tinstall_target=$(ROOT)$(mandir)/$${man%$${man##*/}}man8/$${man##*/} ; \\\n\t\t\t$(INSTALL_DATA) ../man/$$man $$install_target ; \\\n\t\t\tsed -i \"1{ $(MANDB); }\" $$install_target ; \\\n\t\tdone\nifeq ($(ROOT),)\n\t\t#\n\t\t# This part is skipped on Debian systems, the\n\t\t# debian.preinst script takes care of it.\n\t\t@if [ ! -p /run/initctl ]; then \\\n\t\t echo \"Creating /run/initctl\"; \\\n\t\t rm -f /run/initctl; \\\n\t\t mknod -m 600 /run/initctl p; fi\nendif\n"
  },
  {
    "path": "src/bootlogd.c",
    "content": "/*\n * bootlogd.c\tStore output from the console during bootup into a file.\n *\t\tThe file is usually located on the /var partition, and\n *\t\tgets written (and fsynced) as soon as possible.\n *\n * Version:\t@(#)bootlogd  2.86pre  12-Jan-2004  miquels@cistron.nl\n *\n * Bugs:\tUses openpty(), only available in glibc. Sorry.\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n\n#include <sys/types.h>\n#include <sys/time.h>\n#include <sys/stat.h>\n#include <sys/ioctl.h>\n#include <sys/utsname.h>\n#include <time.h>\n#include <stdio.h>\n#include <errno.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <string.h>\n#include <signal.h>\n#include <getopt.h>\n#include <dirent.h>\n#include <fcntl.h>\n#if defined(__linux__) || defined(__GLIBC__)\n#include <pty.h>\n#include <sys/sysmacros.h>\n#endif\n\n#ifdef __FreeBSD__\n#include <termios.h>\n#include <libutil.h>\n#endif\n\n#include <ctype.h>\n#ifdef __linux__\n#include <sys/mount.h>\n#endif\n#include \"bootlogd.h\"\n\n#define MAX_CONSOLES 16\n#define KERNEL_COMMAND_LENGTH 4096\n\nchar ringbuf[32768];\nchar *endptr = ringbuf + sizeof(ringbuf);\nchar *inptr  = ringbuf;\nchar *outptr = ringbuf;\n\nint got_signal = 0;\nint didnl = 1;\nint createlogfile = 0;\nint syncalot = 0;\n\nstruct real_cons {\n\tchar name[1024];\n\tint fd;\n};\n\n/*\n *\tConsole devices as listed on the kernel command line and\n *\tthe mapping to actual devices in /dev\n */\nstruct consdev {\n\tchar\t*cmdline;\n\tchar\t*dev1;\n\tchar\t*dev2;\n} consdev[] = {\n\t{ \"ttyB\",\t\"/dev/ttyB%s\",\t\tNULL\t\t},\n\t{ \"ttySC\",\t\"/dev/ttySC%s\",\t\t\"/dev/ttsc/%s\"\t},\n\t{ \"ttyS\",\t\"/dev/ttyS%s\",\t\t\"/dev/tts/%s\"\t},\n\t{ \"tty\",\t\"/dev/tty%s\",\t\t\"/dev/vc/%s\"\t},\n\t{ \"hvc\",\t\"/dev/hvc%s\",\t\t\"/dev/hvc/%s\"\t},\n\t{ NULL,\t\tNULL,\t\t\tNULL\t\t},\n};\n\n/*\n *\tDevices to try as console if not found on kernel command line.\n *\tTried from left to right (as opposed to kernel cmdline).\n */\nchar *defcons[] = { \"tty0\", \"hvc0\", \"ttyS0\", \"ttySC0\", \"ttyB0\", NULL };\n\n/*\n *\tCatch signals.\n */\nvoid handler(int sig)\n{\n\tgot_signal = sig;\n}\n\n\n/*\n *\tchdir with error message on fail.\n */\nstatic int chdir_int(const char *path)\n{\n\tint ret;\n\n\tif ((ret = chdir(path)) != 0) {\n\t\tconst char *msgprefix = \"bootlogd: %s\";\n\t\tchar msg[PATH_MAX + sizeof(msgprefix)];\n\t\tsnprintf(msg, sizeof(msg), msgprefix, path);\n \t        perror(msg);\n\t}\n\n\treturn ret;\n}\n \n\n/*\n *\tScan /dev and find the device name.\n */\nstatic int findtty(char *res, const char *startdir, int rlen, dev_t dev)\n{\n\tDIR\t\t*dir;\n\tstruct dirent\t*ent;\n\tstruct stat\tst;\n\tint\t\tr = -1;\n\tchar *olddir = getcwd(NULL, 0);\n\n\tif (chdir_int(startdir) < 0 || (dir = opendir(\".\")) == NULL) {\n\t\tchdir_int(olddir);\n\t\treturn -1;\n\t}\n\twhile ((ent = readdir(dir)) != NULL) {\n\t\tif (lstat(ent->d_name, &st) != 0)\n\t\t\tcontinue;\n\t\tif (S_ISDIR(st.st_mode)\n\t\t    && 0 != strcmp(\".\", ent->d_name)\n\t\t    && 0 != strcmp(\"..\", ent->d_name)) {\n\t\t\tchar *path = malloc(rlen);\n\t\t\tsnprintf(path, rlen, \"%s/%s\", startdir, ent->d_name);\n\t\t\tr = findtty(res, path, rlen, dev);\n\t\t\tfree(path);\n\t\t\tif (0 == r) { \n\t\t\t\tclosedir(dir);\n\t\t\t\tchdir_int(olddir);\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (!S_ISCHR(st.st_mode))\n\t\t\tcontinue;\n\t\tif (st.st_rdev == dev) {\n\t\t\tif ( (int) (strlen(ent->d_name) + strlen(startdir) + 1) >= rlen) {\n\t\t\t\tfprintf(stderr, \"bootlogd: console device name too long\\n\");\n\t\t\t\tclosedir(dir);\n\t\t\t\tchdir_int(olddir);\n\t\t\t\treturn -1;\n\t\t\t} else {\n\t\t\t\tsnprintf(res, rlen, \"%s/%s\", startdir, ent->d_name);\n\t\t\t\tclosedir(dir);\n\t\t\t\tchdir_int(olddir);\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t}\n\tclosedir(dir);\n\n\tchdir_int(olddir);\n\treturn r;\n}\n\n\n\n/*\n *\tFor some reason, openpty() in glibc sometimes doesn't\n *\twork at boot-time. It must be a bug with old-style pty\n *\tnames, as new-style (/dev/pts) is not available at that\n *\tpoint. So, we find a pty/tty pair ourself if openpty()\n *\tfails for whatever reason.\n */\nint findpty(int *master, int *slave, char *name)\n{\n\tchar\tpty[16];\n\tchar\ttty[16];\n\tint\ti, j;\n\tint\tfound;\n\n\tif (openpty(master, slave, name, NULL, NULL) >= 0)\n\t\treturn 0;\n\n\tfound = 0;\n\n\tfor (i = 'p'; i <= 'z'; i++) {\n\t\tfor (j = '0'; j <= 'f'; j++) {\n\t\t\tif (j == '9' + 1) j = 'a';\n\t\t\tsprintf(pty, \"/dev/pty%c%c\", i, j);\n\t\t\tsprintf(tty, \"/dev/tty%c%c\", i, j);\n\t\t\tif ((*master = open(pty, O_RDWR|O_NOCTTY)) >= 0) {\n\t\t\t\t*slave = open(tty, O_RDWR|O_NOCTTY);\n\t\t\t\tif (*slave >= 0) {\n\t\t\t\t\tfound = 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (found) break;\n\t}\n\tif (!found) return -1;\n\n\tif (name) strcpy(name, tty);\n\n\treturn 0;\n}\n\nstatic int istty(const char *dev)\n{\n\tint fd, ret;\n\n\tfd = open(dev, O_RDONLY|O_NONBLOCK);\n\tif (fd < 0)\n\t\treturn 0;\n\n\tret = isatty(fd);\n\n\tclose(fd);\n\n\treturn ret;\n}\n\n/*\n *\tSee if a console taken from the kernel command line maps\n *\tto a character device we know about, and if we can open it.\n */\nint isconsole(char *s, char *res, int rlen)\n{\n\tstruct consdev\t*c;\n\tint\t\tl, sl, i, fd;\n\tchar\t\t*p, *q;\n\n\tsl = strlen(s);\n\n\tfor (c = consdev; c->cmdline; c++) {\n\t\tl = strlen(c->cmdline);\n\t\tif (sl <= l) continue;\n\t\tp = s + l;\n\t\tif (strncmp(s, c->cmdline, l) != 0)\n\t\t\tcontinue;\n\t\tfor (i = 0; i < 2; i++) {\n\t\t\tsnprintf(res, rlen, i ? c->dev1 : c->dev2, p);\n\t\t\tif ((q = strchr(res, ',')) != NULL) *q = 0;\n\t\t\tif ((fd = open(res, O_RDONLY|O_NONBLOCK)) >= 0) {\n\t\t\t\tclose(fd);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Fallback: accept any TTY device */\n\tsnprintf(res, rlen, \"/dev/%s\", s);\n\tif ((q = strchr(res, ',')) != NULL) *q = 0;\n\tif (istty(res))\n\t\treturn 1;\n\n\treturn 0;\n}\n\n/*\n *\tFind out the _real_ console(s). Assume that stdin is connected to\n *\tthe console device (/dev/console).\n */\nint consolenames(struct real_cons *cons, int max_consoles)\n{\n#ifdef TIOCGDEV\n\tunsigned int\tkdev;\n#endif\n\tstruct stat\tst, st2;\n\tchar\t\tbuf[KERNEL_COMMAND_LENGTH];\n\tchar\t\t*p;\n\tint\t\tdidmount = 0;\n\tint\t\tn;\n\tint\t\tfd;\n\tint\t\tconsidx, num_consoles = 0;\n\n#ifdef __linux__\n\t/*\n\t *\tRead /proc/cmdline.\n\t */\n\tstat(\"/\", &st);\n\tif (stat(\"/proc\", &st2) < 0) {\n\t\tperror(\"bootlogd: /proc\");\n\t\treturn 0;\n\t}\n\tif (st.st_dev == st2.st_dev) {\n\t\tif (mount(\"proc\", \"/proc\", \"proc\", 0, NULL) < 0) {\n\t\t\tperror(\"bootlogd: mount /proc\");\n\t\t\treturn -1;\n\t\t}\n\t\tdidmount = 1;\n\t}\n\n\tn = -1;\n\tif ((fd = open(\"/proc/cmdline\", O_RDONLY)) < 0) {\n\t\tperror(\"bootlogd: /proc/cmdline\");\n\t} else {\n\t\tbuf[0] = 0;\n\t\tif ((n = read(fd, buf, KERNEL_COMMAND_LENGTH - 1)) < 0)\n\t\t\tperror(\"bootlogd: /proc/cmdline\");\n\t\tclose(fd);\n\t}\n\tif (didmount) umount(\"/proc\");\n                \n\tif (n < 0) return 0;\n\n\t/*\n\t *\tOK, so find console= in /proc/cmdline.\n\t *\tParse in reverse, opening as we go.\n\t */\n\tp = buf + n;\n\t*p-- = 0;\n\twhile (p >= buf) {\n\t\tif (*p == ' ' || *p == '\\t' || *p == '\\r' || *p == '\\n') {\n\t\t\t*p-- = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (strncmp(p, \"console=\", 8) == 0 &&\n\t\t\tisconsole(p + 8, cons[num_consoles].name, sizeof(cons[num_consoles].name))) {\n\t\t\t\t/*\n\t\t\t\t *\tSuppress duplicates\n\t\t\t\t */\n\t\t\t\tfor (considx = 0; considx < num_consoles; considx++) {\n\t\t\t\t\tif (!strcmp(cons[num_consoles].name, cons[considx].name)) {\n\t\t\t\t\t\tgoto dontuse;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\tnum_consoles++;\n\t\t\tif (num_consoles >= max_consoles) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\ndontuse:\n\t\tp--;\n\t}\n\n\tif (num_consoles > 0) return num_consoles;\n#endif\n\tfstat(0, &st);\n\tif (major(st.st_rdev) != 5 || minor(st.st_rdev) != 1) {\n\t\t/*\n\t\t *\tOld kernel, can find real device easily.\n\t\t */\n\t\tint r = findtty(cons[num_consoles].name, \"/dev\", \n                                sizeof(cons[num_consoles].name), st.st_rdev);\n\t\tif (!r)\n\t\t\tnum_consoles++;\n\t}\n\n\tif (num_consoles > 0) return num_consoles;\n\n#ifdef TIOCGDEV\n# ifndef  ENOIOCTLCMD\n#  define ENOIOCTLCMD\t515\n# endif\n\tif (ioctl(0, TIOCGDEV, &kdev) == 0) {\n\t\tint r = findtty(cons[num_consoles].name, \"/dev\", \n                                sizeof(cons[num_consoles].name), (dev_t)kdev);\n\t\tif (!r)\n\t\t\tnum_consoles++;\n\t}\n\n\tif (num_consoles > 0) return num_consoles;\n#endif\n\n\t/*\n\t *\tOkay, no console on the command line -\n\t *\tguess the default console.\n\t */\n\tfor (n = 0; defcons[n]; n++)\n\t\tif (isconsole(defcons[n], cons[0].name, sizeof(cons[0].name))) \n\t\t\treturn 1;\n\n\tfprintf(stderr, \"bootlogd: cannot deduce real console device\\n\");\n\n\treturn 0;\n}\n\n\n/*\n *\tWrite data and make sure it's on disk.\n */\nvoid writelog(FILE *fp, unsigned char *ptr, int len, int print_escape_characters)\n{\n\tint dosync = 0;\n\tint i;\n\tstatic int first_run = 1;\n\tstatic int inside_esc = 0;\n\n\tfor (i = 0; i < len; i++) {\n\t\tint ignore = 0;\n\n\t\t/* prepend date to every line */\n\t\tif (*(ptr-1) == '\\n' || first_run) {\n\t\t\ttime_t t;\n\t\t\tchar *s;\n\t\t\ttime(&t);\n\t\t\ts = ctime(&t);\n\t\t\tif (! s)\n                           s = \" \";\n                        fprintf(fp, \"%.24s: \", s);\n\t\t\tdosync = 1;\n\t\t\tfirst_run = 0;\n\t\t}\n\n\t\t/* remove escape sequences, but do it in a way that allows us to stop\n\t\t * in the middle in case the string was cut off */\n                if (! print_escape_characters)\n                {\n                    if (inside_esc == 1) {\n\t\t\t/* first '[' is special because if we encounter it again, it should be considered the final byte */\n\t\t\tif (*ptr == '[') {\n\t\t\t\t/* multi char sequence */\n\t\t\t\tignore = 1;\n\t\t\t\tinside_esc = 2;\n\t\t\t} else {\n\t\t\t\t/* single char sequence */\n\t\t\t\tif (*ptr >= 64 && *ptr <= 95) {\n\t\t\t\t\tignore = 1;\n\t\t\t\t}\n\t\t\t\tinside_esc = 0;\n\t\t\t}\n                    } else if (inside_esc == 2) {\n\t\t\tswitch (*ptr) {\n\t\t\t\tcase '0' ... '9': /* intermediate chars of escape sequence */\n\t\t\t\tcase ';':\n\t\t\t\tcase 32 ... 47:\n\t\t\t\t\tif (inside_esc) {\n\t\t\t\t\t\tignore = 1;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 64 ... 126: /* final char of escape sequence */\n\t\t\t\t\tif (inside_esc) {\n\t\t\t\t\t\tignore = 1;\n\t\t\t\t\t\tinside_esc = 0;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n                        }\n\t\t     } else {\n\t\t\tswitch (*ptr) {\n\t\t\t\tcase '\\r':\n\t\t\t\t\tignore = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 27: /* ESC */\n\t\t\t\t\tignore = 1;\n\t\t\t\t\tinside_esc = 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t     }\n                }     /* end of if we should filter escape characters */\n\n\t\tif (!ignore) {\n\t\t\tfwrite(ptr, sizeof(char), 1, fp);\n\t\t}\n\n\t\tptr++;\n\t}\n\tif (dosync) {\n\t\tfflush(fp);\n\t\tif (syncalot) {\n\t\t\tfdatasync(fileno(fp));\n\t\t}\n\t}\n\n\toutptr += len;\n\tif (outptr >= endptr)\n\t\toutptr = ringbuf;\n\n}\n\n\n/*\n *\tPrint usage message and exit.\n */\nvoid usage(void)\n{\n\tfprintf(stderr, \"Usage: bootlogd [-v] [-r] [-d] [-e] [-s] [-c] [-p pidfile] [-l logfile]\\n\");\n\texit(1);\n}\n\nint open_nb(char *buf)\n{\n\tint\tfd, n;\n\n\tif ((fd = open(buf, O_WRONLY|O_NONBLOCK|O_NOCTTY)) < 0)\n\t\treturn -1;\n\tn = fcntl(fd, F_GETFL);\n\tn &= ~(O_NONBLOCK);\n\tfcntl(fd, F_SETFL, n);\n\n\treturn fd;\n}\n\n/*\n *\tWe got a write error on the real console. If its an EIO,\n *\tsomebody hung up our filedescriptor, so try to re-open it.\n */\nint write_err(int pts, int realfd, char *realcons, int e)\n{\n\tint\tfd;\n\n\tif (e != EIO) {\nwerr:\n\t\tclose(pts);\n\t\tfprintf(stderr, \"bootlogd: writing to console: %s\\n\",\n\t\t\tstrerror(e));\n\t\treturn -1;\n\t}\n\tclose(realfd);\n\tif ((fd = open_nb(realcons)) < 0)\n\t\tgoto werr;\n\n\treturn fd;\n}\n\nint main(int argc, char **argv)\n{\n\tFILE\t\t*fp;\n\tstruct timeval\ttv;\n\tfd_set\t\tfds;\n\tchar\t\tbuf[1024];\n\tchar\t\t*p;\n\tchar\t\t*logfile;\n\tchar\t\t*pidfile;\n\tint\t\trotate;\n\tint\t\tdontfork;\n\tint\t\tptm, pts;\n\t/* int\t\trealfd;   -- this is now unused */\n\tint\t\tn, m, i;\n\tint\t\ttodo;\n#ifndef __linux__\t/* BSD-style ioctl needs an argument. */\n\tint\t\ton = 1;\n#endif\n        int             prev_eio = 0;\n\tint\t\tconsidx;\n\tstruct real_cons cons[MAX_CONSOLES];\n\tint\t\tnum_consoles, consoles_left;\n        int             print_escape_sequence = 0;\n\tfp = NULL;\n\tlogfile = LOGFILE;\n\tpidfile = NULL;\n\trotate = 0;\n\tdontfork = 0;\n\n\twhile ((i = getopt(argc, argv, \"cdesl:p:rv\")) != EOF) switch(i) {\n\t\tcase 'l':\n\t\t\tlogfile = optarg;\n\t\t\tbreak;\n\t\tcase 'r':\n\t\t\trotate = 1;\n\t\t\tbreak;\n\t\tcase 'v':\n\t\t\tprintf(\"bootlogd - %s\\n\", VERSION);\n\t\t\texit(0);\n\t\t\tbreak;\n\t\tcase 'p':\n\t\t\tpidfile = optarg;\n\t\t\tbreak;\n\t\tcase 'c':\n\t\t\tcreatelogfile = 1;\n\t\t\tbreak;\n\t\tcase 'd':\n\t\t\tdontfork = 1;\n\t\t\tbreak;\n                case 'e':\n                        print_escape_sequence = 1;\n                        break;\n\t\tcase 's':\n\t\t\tsyncalot = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tusage();\n\t\t\tbreak;\n\t}\n\tif (optind < argc) usage();\n\n\tsignal(SIGTERM, handler);\n\tsignal(SIGQUIT, handler);\n\tsignal(SIGINT,  handler);\n\tsignal(SIGTTIN,  SIG_IGN);\n\tsignal(SIGTTOU,  SIG_IGN);\n\tsignal(SIGTSTP,  SIG_IGN);\n\n\t/*\n\t *\tOpen console device directly.\n\t */\n        /*\n\tif (consolename(realcons, sizeof(realcons)) < 0)\n\t\treturn 1;\n\n\tif (strcmp(realcons, \"/dev/tty0\") == 0)\n\t\tstrcpy(realcons, \"/dev/tty1\");\n\tif (strcmp(realcons, \"/dev/vc/0\") == 0)\n\t\tstrcpy(realcons, \"/dev/vc/1\");\n\n\tif ((realfd = open_nb(realcons)) < 0) {\n\t\tfprintf(stderr, \"bootlogd: %s: %s\\n\", realcons, strerror(errno));\n\t\treturn 1;\n\t}\n        */\n        if ((num_consoles = consolenames(cons, MAX_CONSOLES)) <= 0)\n                return 1;\n        consoles_left = num_consoles;\n        for (considx = 0; considx < num_consoles; considx++) {\n               if (strcmp(cons[considx].name, \"/dev/tty0\") == 0)\n                       strcpy(cons[considx].name, \"/dev/tty1\");\n               if (strcmp(cons[considx].name, \"/dev/vc/0\") == 0)\n                       strcpy(cons[considx].name, \"/dev/vc/1\");\n\n               if ((cons[considx].fd = open_nb(cons[considx].name)) < 0) {\n                       fprintf(stderr, \"bootlogd: %s: %s\\n\", \n                                cons[considx].name, strerror(errno));\n                       consoles_left--;\n               }\n        }\n        if (!consoles_left)\n               return 1;\n\n\n\t/*\n\t *\tGrab a pty, and redirect console messages to it.\n\t */\n\tptm = -1;\n\tpts = -1;\n\tbuf[0] = 0;\n\tif (findpty(&ptm, &pts, buf) < 0) {\n\t\tfprintf(stderr,\n\t\t\t\"bootlogd: cannot allocate pseudo tty: %s\\n\",\n\t\t\tstrerror(errno));\n\t\treturn 1;\n\t}\n\n#ifdef __linux__\n\t(void)ioctl(0, TIOCCONS, NULL);\n\t/* Work around bug in 2.1/2.2 kernels. Fixed in 2.2.13 and 2.3.18 */\n\tif ((n = open(\"/dev/tty0\", O_RDWR)) >= 0) {\n\t\t(void)ioctl(n, TIOCCONS, NULL);\n\t\tclose(n);\n\t}\n#endif\n#ifdef __linux__\n\tif (ioctl(pts, TIOCCONS, NULL) < 0)\n#else\t/* BSD usage of ioctl TIOCCONS. */\n\tif (ioctl(pts, TIOCCONS, &on) < 0)\n#endif\n\t{\n\t\tfprintf(stderr, \"bootlogd: ioctl(%s, TIOCCONS): %s\\n\",\n\t\t\tbuf, strerror(errno));\n\t\treturn 1;\n\t}\n\n\t/*\n\t *\tFork and write pidfile if needed.\n\t */\n\tif (!dontfork) {\n\t\tpid_t child_pid = fork();\n\t\tswitch (child_pid) {\n\t\tcase -1: /* I am parent and the attempt to create a child failed */\n\t\t\tfprintf(stderr, \"bootlogd: fork failed: %s\\n\",\n\t\t\t\tstrerror(errno));\n\t\t\texit(1);\n\t\t\tbreak;\n\t\tcase 0: /* I am the child */\n\t\t\tbreak;\n\t\tdefault: /* I am parent and got child's pid */\n\t\t\texit(0);\n\t\t\tbreak;\n\t\t}\n\t\tsetsid();\n\t}\n\tif (pidfile) {\n\t\tunlink(pidfile);\n\t\tif ((fp = fopen(pidfile, \"w\")) != NULL) {\n\t\t\tfprintf(fp, \"%d\\n\", (int)getpid());\n\t\t\tfclose(fp);\n\t\t}\n\t\tfp = NULL;\n\t}\n\n\t/*\n\t *\tRead the console messages from the pty, and write\n\t *\tto the real console and the logfile.\n\t */\n\twhile (!got_signal) {\n\n\t\t/*\n\t\t *\tWe timeout after 5 seconds if we still need to\n\t\t *\topen the logfile. There might be buffered messages\n\t\t *\twe want to write.\n\t\t */\n\t\ttv.tv_sec = 0;\n\t\ttv.tv_usec = 500000;\n\t\tFD_ZERO(&fds);\n\t\tFD_SET(ptm, &fds);\n\t\tif (select(ptm + 1, &fds, NULL, NULL, &tv) == 1) {\n\t\t\t/*\n\t\t\t *\tSee how much space there is left, read.\n\t\t\t */\n\t\t\tif ((n = read(ptm, inptr, endptr - inptr)) >= 0) {\n\t\t\t\t/*\n\t\t\t\t *\tWrite data (in chunks if needed)\n\t\t\t\t *\tto the real output devices.\n\t\t\t\t */\n\t\t\t\tfor (considx = 0; considx < num_consoles; considx++) {\n\t\t\t\t\tif (cons[considx].fd < 0) continue;\n\t\t\t\t\tm = n;\n\t\t\t\t\tp = inptr;\n\t\t\t\t\twhile (m > 0) {\n\t\t\t\t\t\ti = write(cons[considx].fd, p, m);\n\t\t\t\t\t\tif (i >= 0) {\n\t\t\t\t\t\t\tm -= i;\n\t\t\t\t\t\t\tp += i;\n                                                        prev_eio = 0;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n                                                /* Don't try to write the same data\n                                                 * again if we got EIO twice */\n                                                if ( (errno == EIO) && (prev_eio) ) {\n                                                      m = 0;\n                                                }\n                                                prev_eio = (errno == EIO);\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t *\tHandle EIO (somebody hung\n\t\t\t\t\t\t *\tup our filedescriptor)\n\t\t\t\t\t\t */\n\t\t\t\t\t\tcons[considx].fd = write_err(pts,\n\t\t\t\t\t\t\tcons[considx].fd,\n\t\t\t\t\t\t\tcons[considx].name, errno);\n\t\t\t\t\t\tif (cons[considx].fd >= 0) continue;\n\t\t\t\t\t\t/*\t\n\t\t\t\t\t\t *\tIf this was the last console,\n\t\t\t\t\t\t *\tgenerate a fake signal\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (--consoles_left <= 0) got_signal = 1;\n\t\t\t\t\t\tbreak;\n \t\t\t\t\t}   /* end of while */\n\t\t\t\t}     /* end of going through all consoles */\n\n\t\t\t\t/*\n\t\t\t\t *\tIncrement buffer position. Handle\n\t\t\t\t *\twraps, and also drag output pointer\n\t\t\t\t *\talong if we cross it.\n\t\t\t\t */\n\t\t\t\tinptr += n;\n\t\t\t\tif (inptr - n < outptr && inptr > outptr)\n\t\t\t\t\toutptr = inptr;\n\t\t\t\tif (inptr >= endptr)\n\t\t\t\t\tinptr = ringbuf;\n\t\t\t\tif (outptr >= endptr)\n\t\t\t\t\toutptr = ringbuf;\n\t\t\t}       /* end of got data from read */\n\t\t}      /* end of checking select for new data */\n\n\t\t/*\n\t\t *\tPerhaps we need to open the logfile.\n\t\t */\n\t\tif (fp == NULL && access(logfile, F_OK) == 0) {\n\t\t\tif (rotate) {\n\t\t\t\tsnprintf(buf, sizeof(buf), \"%s~\", logfile);\n\t\t\t\trename(logfile, buf);\n\t\t\t}\n\t\t\tfp = fopen(logfile, \"a\");\n\t\t}\n\t\tif (fp == NULL && createlogfile)\n\t\t\tfp = fopen(logfile, \"a\");\n\n\t\tif (inptr >= outptr)\n\t\t\ttodo = inptr - outptr;\n\t\telse\n\t\t\ttodo = endptr - outptr;\n\t\tif (fp && todo)\n\t\t\twritelog(fp, (unsigned char *)outptr, todo, print_escape_sequence);\n\t}    /* end of while waiting for signal */\n\n\tif (fp) {\n\t\tif (!didnl) fputc('\\n', fp);\n\t\tfclose(fp);\n\t}\n\n\tclose(pts);\n\tclose(ptm);\n\tfor (considx = 0; considx < num_consoles; considx++) {\n\t\tclose(cons[considx].fd);\n\t}\n\n\treturn 0;\n}\n\n"
  },
  {
    "path": "src/bootlogd.h",
    "content": "#ifndef LOGFILE\n#define LOGFILE \"/var/log/boot\"\n#endif\n\n#ifndef TRUE\n#define TRUE 1\n#endif\n\n#ifndef FALSE\n#define FALSE 0\n#endif\n\n#ifndef PATH_MAX\n#define PATH_MAX 2048\n#endif\n\n"
  },
  {
    "path": "src/consoles.c",
    "content": "/*\n * consoles.c\t    Routines to detect the system consoles\n *\n * Copyright (c) 2011 SuSE LINUX Products GmbH, All rights reserved.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2, or (at your option)\n * any later version.\n *  \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program (see the file COPYING); if not, write to the\n * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,\n * MA 02110-1301, USA.\n *\n * Author: Werner Fink <werner@suse.de>\n */\n\n#include <limits.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/ioctl.h>\n#include <sys/ttydefaults.h>\n#ifdef __linux__\n#  include <sys/vt.h>\n#  include <sys/kd.h>\n#  include <linux/serial.h>\n#include <sys/sysmacros.h>  \n#endif\n#include <fcntl.h>\n#include <dirent.h>\n#include <unistd.h>\n#include \"consoles.h\"\n\n#ifdef __linux__\n# include <linux/major.h>\n#endif\n\n#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)\n# ifndef  typeof\n#  define typeof\t\t__typeof__\n# endif\n# ifndef  restrict\n#  define restrict\t\t__restrict__\n# endif\n#endif\n\n#define alignof(type)\t\t((sizeof(type)+(sizeof(void*)-1)) & ~(sizeof(void*)-1))\n\nstruct console *consoles;\n\n/*\n * Read and allocate one line from file,\n * the caller has to free the result\n */\nstatic\n#ifdef __GNUC__\n__attribute__((__nonnull__))\n#endif\nchar *oneline(const char *file)\n{\n\tFILE *fp;\n\tchar *ret = (char*)0, *nl;\n\tsize_t len = 0;\n\n\tif ((fp = fopen(file, \"re\")) == (FILE*)0)\n\t\tgoto err;\n\tif (getline(&ret, &len, fp) < 0)\n\t\tgoto out;\n\tif (len)\n\t\tret[len-1] = '\\0';\n\tif ((nl = strchr(ret, '\\n')))\n\t\t*nl = '\\0';\nout:\n\tfclose(fp);\nerr:\n\treturn ret;\n}\n\n#ifdef __linux__\n/*\n *  Read and determine active attribute for tty below\n *  /sys/class/tty, the caller has to free the result.\n */\nstatic\n__attribute__((__malloc__))\nchar *actattr(const char *tty)\n{\n\tchar *ret = (char*)0;\n\tchar *path;\n\n\tif (!tty || *tty == '\\0')\n\t\tgoto err;\n\n\tif (asprintf(&path, \"/sys/class/tty/%s/active\", tty) < 0)\n\t\tgoto err;\n\n\tif ((ret = oneline(path)) == (char*)0)\n\t\tgoto out;\nout:\n\tfree(path);\nerr:\n\treturn ret;\n}\n\n/*\n * Read and determine device attribute for tty below\n * /sys/class/tty.\n */\nstatic\ndev_t devattr(const char *tty)\n{\n\tunsigned int maj, min;\n\tdev_t dev = 0;\n\tchar *path, *value;\n\n\tif (!tty || *tty == '\\0')\n\t\tgoto err;\n\n\tif (asprintf(&path, \"/sys/class/tty/%s/dev\", tty) < 0)\n\t\tgoto err;\n\n\tif ((value = oneline(path)) == (char*)0)\n\t\tgoto out;\n\n\tif (sscanf(value, \"%u:%u\", &maj, &min) == 2)\n\t\tdev = makedev(maj, min);\n\tfree(value);\nout:\n\tfree(path);\nerr:\n\treturn dev;\n}\n#endif /* __linux__ */\n\n/*\n * Search below /dev for the character device in\n * the local `dev_t comparedev' variable.\n */\nstatic dev_t comparedev;\nstatic\n#ifdef __GNUC__\n__attribute__((__nonnull__,__malloc__,__hot__))\n#endif\nchar* scandev(DIR *dir)\n{\n\tchar *name = (char*)0;\n\tstruct dirent *dent;\n\tint fd;\n\n\tfd = dirfd(dir);\n\trewinddir(dir);\n\twhile ((dent = readdir(dir))) {\n\t\tchar *path;\n\t\tstruct stat st;\n\t\tif (fstatat(fd, dent->d_name, &st, 0) < 0)\n\t\t\tcontinue;\n\t\tif (!S_ISCHR(st.st_mode))\n\t\t\tcontinue;\n\t\tif (comparedev != st.st_rdev)\n\t\t\tcontinue;\n\t\tif (asprintf(&path, \"/dev/%s\", dent->d_name) < 0)\n\t\t\tcontinue;\n\t\tname = realpath(path, NULL);\n\t\tfree(path);\n\t\tbreak;\n\t}\n\treturn name;\n}\n\n/*\n * Default control characters for an unknown terminal line.\n */\nstatic\nstruct chardata initcp = {\n\tCERASE,\n\tCKILL,\n\tCTRL('r'),\n\t0\n};\n\n/*\n * Allocate an aligned `struct console' memory area,\n * initialize its default values, and append it to\n * the global linked list.\n */\n\nstatic int concount;\t\t/* Counter for console IDs */\n\nstatic\n#ifdef __GNUC__\n__attribute__((__nonnull__,__hot__))\n#endif\nvoid consalloc(char * name)\n{\n\tstruct console *restrict tail;\n\n\tif (posix_memalign((void*)&tail, sizeof(void*), alignof(typeof(struct console))) != 0)\n\t\tperror(\"memory allocation\");\n\n\ttail->next = (struct console*)0;\n\ttail->tty = name;\n\n\ttail->file = (FILE*)0;\n\ttail->flags = 0;\n\ttail->fd = -1;\n\ttail->id = concount++;\n\ttail->pid = 0;\n\tmemset(&tail->tio, 0, sizeof(tail->tio));\n\tmemcpy(&tail->cp, &initcp, sizeof(struct chardata));\n\n\tif (!consoles)\n\t\tconsoles = tail;\n\telse\n\t\tconsoles->next = tail;\n}\n\n/*\n * Try to detect the real device(s) used for the system console\n * /dev/console if but only if /dev/console is used.  On Linux\n * this can be more than one device, e.g. a serial line as well\n * as a virtual console as well as a simple printer.\n *\n * Returns 1 if stdout and stderr should be reconnected and 0\n * otherwise.\n */\nint detect_consoles(const char *device, int fallback)\n{\n\tint fd, ret = 0;\n#ifdef __linux__\n\tchar *attrib, *cmdline;\n\tFILE *fc;\n#endif\n\tif (!device || *device == '\\0')\n\t\tfd = dup(fallback);\n\telse {\n\t\tfd = open(device, O_RDWR|O_NONBLOCK|O_NOCTTY|O_CLOEXEC);\n\t\tret = 1;\n\t}\n\n\tif (fd >= 0) {\n\t\tDIR *dir;\n\t\tchar *name;\n\t\tstruct stat st;\n#ifdef TIOCGDEV\n\t\tunsigned int devnum;\n#endif\n\n\t\tif (fstat(fd, &st) < 0) {\n\t\t\tclose(fd);\n\t\t\tgoto fallback;\n\t\t}\n\t\tcomparedev = st.st_rdev;\n\n\t\tif (ret && (fstat(fallback, &st) < 0 || comparedev != st.st_rdev))\n\t\t\tdup2(fd, fallback);\n#ifdef __linux__\n\t\t/*\n\t\t * Check if the device detection for Linux system console should be used.\n\t\t */\n\t\tif (comparedev == makedev(TTYAUX_MAJOR, 0)) {\t/* /dev/tty\t*/\n\t\t\tclose(fd);\n\t\t\tdevice = \"/dev/tty\";\n\t\t\tgoto fallback;\n\t\t}\n\t\tif (comparedev == makedev(TTYAUX_MAJOR, 1)) {\t/* /dev/console */\n\t\t\tclose(fd);\n\t\t\tgoto console;\n\t\t}\n\t\tif (comparedev == makedev(TTYAUX_MAJOR, 2)) {\t/* /dev/ptmx\t*/\n\t\t\tclose(fd);\n\t\t\tdevice = \"/dev/tty\";\n\t\t\tgoto fallback;\n\t\t}\n\t\tif (comparedev == makedev(TTY_MAJOR, 0)) {\t/* /dev/tty0\t*/\n\t\t\tstruct vt_stat vt;\n\t\t\tif (ioctl(fd, VT_GETSTATE, &vt) < 0) {\n\t\t\t\tclose(fd);\n\t\t\t\tgoto fallback;\n\t\t\t}\n\t\t\tcomparedev = makedev(TTY_MAJOR, (int)vt.v_active);\n\t\t}\n#endif\n#ifdef TIOCGDEV\n\t\tif (ioctl (fd, TIOCGDEV, &devnum) < 0) {\n\t\t\tclose(fd);\n\t\t\tgoto fallback;\n\t\t}\n\t\tcomparedev = (dev_t)devnum;\n#endif\n\t\tclose(fd);\n\t\tdir = opendir(\"/dev\");\n\t\tif (!dir)\n\t\t\tgoto fallback;\n\t\tname = scandev(dir);\n\t\tif (name)\n\t\t\tconsalloc(name);\n\t\tclosedir(dir);\n\t\tif (!consoles)\n\t\t\tgoto fallback;\n\t\treturn ret;\n\t}\n#ifdef __linux__\nconsole:\n\t/*\n\t * Detection of devices used for Linux system consolei using\n\t * the /proc/consoles API with kernel 2.6.38 and higher.\n\t */\n\tif ((fc = fopen(\"/proc/consoles\", \"re\"))) {\n\t\tchar fbuf[16];\n\t\tint maj, min;\n\t\tDIR *dir;\n\t\tdir = opendir(\"/dev\");\n\t\tif (!dir) {\n\t\t\tfclose(fc);\n\t\t\tgoto fallback;\n\t\t}\n\t\twhile ((fscanf(fc, \"%*s %*s (%[^)]) %d:%d\", &fbuf[0], &maj, &min) == 3)) {\n\t\t\tchar * name;\n\n\t\t\tif (!strchr(fbuf, 'E'))\n\t\t\t\tcontinue;\n\t\t\tcomparedev = makedev(maj, min);\n\n\t\t\tname = scandev(dir);\n\t\t\tif (!name)\n\t\t\t\tcontinue;\n\t\t\tconsalloc(name);\n\t\t}\n\t\tclosedir(dir);\n\t\tfclose(fc);\n\t\treturn ret;\n\t}\n\t/*\n\t * Detection of devices used for Linux system console using\n\t * the sysfs /sys/class/tty/ API with kernel 2.6.37 and higher.\n\t */\n\tif ((attrib = actattr(\"console\"))) {\n\t\tchar *words = attrib, *token;\n\t\tDIR *dir;\n\n\t\tdir = opendir(\"/dev\");\n\t\tif (!dir) {\n\t\t\tfree(attrib);\n\t\t\tgoto fallback;\n\t\t}\n\t\twhile ((token = strsep(&words, \" \\t\\r\\n\"))) {\n\t\t\tchar * name;\n\n\t\t\tif (*token == '\\0')\n\t\t\t\tcontinue;\n\t\t\tcomparedev = devattr(token);\n\t\t\tif (comparedev == makedev(TTY_MAJOR, 0)) {\n\t\t\t\tchar *tmp = actattr(token);\n\t\t\t\tif (!tmp)\n\t\t\t\t\tcontinue;\n\t\t\t\tcomparedev = devattr(tmp);\n\t\t\t\tfree(tmp);\n\t\t\t}\n\n\t\t\tname = scandev(dir);\n\t\t\tif (!name)\n\t\t\t\tcontinue;\n\t\t\tconsalloc(name);\n\t\t}\n\t\tclosedir(dir);\n\t\tfree(attrib);\n\t\tif (!consoles)\n\t\t\tgoto fallback;\n\t\treturn ret;\n\n\t}\n\t/*\n\t * Detection of devices used for Linux system console using\n\t * kernel parameter on the kernels command line.\n\t */\n\tif ((cmdline = oneline(\"/proc/cmdline\"))) {\n\t\tchar *words= cmdline, *token;\n\t\tDIR *dir;\n\n\t\tdir = opendir(\"/dev\");\n\t\tif (!dir) {\n\t\t\tfree(cmdline);\n\t\t\tgoto fallback;\n\t\t}\n\t\twhile ((token = strsep(&words, \" \\t\\r\\n\"))) {\n#ifdef TIOCGDEV\n\t\t\tunsigned int devnum;\n#else\n\t\t\tstruct vt_stat vt;\n\t\t\tstruct stat st;\n#endif\n\t\t\tchar *colon, *name;\n\n\t\t\tif (*token != 'c')\n\t\t\t\tcontinue;\n\n\t\t\tif (strncmp(token, \"console=\", 8) != 0)\n\t\t\t\tcontinue;\n\t\t\ttoken += 8;\n\n\t\t\tif (strcmp(token, \"brl\") == 0)\n\t\t\t\ttoken += 4;\n\t\t\tif ((colon = strchr(token, ',')))\n\t\t\t\t*colon = '\\0';\n\n\t\t\tif (asprintf(&name, \"/dev/%s\", token) < 0)\n\t\t\t\tcontinue;\n\n\t\t\tif ((fd = open(name, O_RDWR|O_NONBLOCK|O_NOCTTY|O_CLOEXEC)) < 0) {\n\t\t\t\tfree(name);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfree(name);\n#ifdef TIOCGDEV\n\t\t\tif (ioctl (fd, TIOCGDEV, &devnum) < 0) {\n\t\t\t\tclose(fd);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcomparedev = (dev_t)devnum;\n#else\n\t\t\tif (fstat(fd, &st) < 0) {\n\t\t\t\tclose(fd);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcomparedev = st.st_rdev;\n\t\t\tif (comparedev == makedev(TTY_MAJOR, 0)) {\n\t\t\t\tif (ioctl(fd, VT_GETSTATE, &vt) < 0) {\n\t\t\t\t\tclose(fd);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcomparedev = makedev(TTY_MAJOR, (int)vt.v_active);\n\t\t\t}\n#endif\n\t\t\tclose(fd);\n\n\t\t\tname = scandev(dir);\n\t\t\tif (!name)\n\t\t\t\tcontinue;\n\t\t\tconsalloc(name);\n\t\t}\n\t\tclosedir(dir);\n\t\tfree(cmdline);\n\t\t/*\n\t\t * Detection of the device used for Linux system console using\n\t\t * the ioctl TIOCGDEV if available (e.g. official 2.6.38).\n\t\t */\n\t\tif (!consoles) {\n#ifdef TIOCGDEV\n\t\t\tunsigned int devnum;\n\t\t\tconst char *name;\n\n\t\t\tif (!device || *device == '\\0')\n\t\t\t\tfd = dup(fallback);\n\t\t\telse\tfd = open(device, O_RDWR|O_NONBLOCK|O_NOCTTY|O_CLOEXEC);\n\n\t\t\tif (fd < 0)\n\t\t\t\tgoto fallback;\n\n\t\t\tif (ioctl (fd, TIOCGDEV, &devnum) < 0) {\n\t\t\t\tclose(fd);\n\t\t\t\tgoto fallback;\n\t\t\t}\n\t\t\tcomparedev = (dev_t)devnum;\n\t\t\tclose(fd);\n\n\t\t\tif (device && *device != '\\0')\n\t\t\t\tname = device;\n\t\t\telse\tname = ttyname(fallback);\n\n\t\t\tif (!name)\n\t\t\t\tname = \"/dev/tty1\";\n\n\t\t\tconsalloc(strdup(name));\n\t\t\tif (consoles) {\n\t\t\t\tif (!device || *device == '\\0')\n\t\t\t\t\tconsoles->fd = fallback;\n\t\t\t\treturn ret;\n\t\t\t}\n#endif\n\t\t\tgoto fallback;\n\t\t}\n\t\treturn ret;\n\t}\n#endif /* __linux __ */\nfallback:\n\tif (fallback >= 0) {\n\t\tconst char *name;\n\t\t\n\t\tif (device && *device != '\\0')\n\t\t\tname = device;\n\t\telse\tname = ttyname(fallback);\n\n\t\tif (!name)\n\t\t\tname = \"/dev/tty\";\n\n\t\tconsalloc(strdup(name));\n\t\tif (consoles)\n\t\t\tconsoles->fd = fallback;\n\t}\n\treturn ret;\n}\n"
  },
  {
    "path": "src/consoles.h",
    "content": "/*\n * consoles.h\t    Header file for routines to detect the system consoles\n *\n * Copyright (c) 2011 SuSE LINUX Products GmbH, All rights reserved.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2, or (at your option)\n * any later version.\n *  \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program (see the file COPYING); if not, write to the\n * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,\n * MA 02110-1301, USA.\n *\n * Author: Werner Fink <werner@suse.de>\n */\n\n#include <sys/types.h>\n#include <stdint.h>\n#include <stdio.h>\n#include <termios.h>\n\nstruct chardata {\n\tuint8_t\terase;\n\tuint8_t kill;\n\tuint8_t eol;\n\tuint8_t parity;\n};\nstruct console {\n\tchar *tty;\n\tFILE *file;\n\tuint32_t flags;\n\tint fd, id;\n#define\tCON_SERIAL\t0x0001\n#define\tCON_NOTTY\t0x0002\n\tpid_t pid;\n\tstruct chardata cp;\n\tstruct termios tio;\n\tstruct console *next;\n};\nextern struct console *consoles;\nextern int detect_consoles(const char *, int);\n"
  },
  {
    "path": "src/dowall.c",
    "content": "/*\n * dowall.c\tWrite to all users on the system.\n *\n * Author:\tMiquel van Smoorenburg, miquels@cistron.nl\n * \n * Version:\t@(#)dowall.c  2.85-5  02-Jul-2003  miquels@cistron.nl\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2003 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/sysmacros.h>\n#include <limits.h>\n#include <stdlib.h>\n#include <string.h>\n#include <time.h>\n#include <unistd.h>\n#include <stdio.h>\n#include <utmp.h>\n#include <pwd.h>\n#include <fcntl.h>\n#include <signal.h>\n#include <setjmp.h>\n#include <paths.h>\n\n#ifndef _PATH_DEV\n# define _PATH_DEV\t\"/dev/\"\n#endif\n#ifndef HOST_NAME_MAX\n# define HOST_NAME_MAX\t255\n#endif\n\nstatic sigjmp_buf jbuf;\n\n/*\n *\tAlarm handler\n */\n/*ARGSUSED*/\n# ifdef __GNUC__\nstatic void handler(int arg __attribute__((unused)))\n# else\nstatic void handler(int arg)\n# endif\n{\n\tsiglongjmp(jbuf, 1);\n}\n\n\n/*\n *\tPrint a text, escape all characters not in Latin-1.\n */\nstatic void feputs(const char *line, FILE *fp)\n{\n\tunsigned char\t\t*p;\n\n\tfor (p = (unsigned char *)line; *p; p++) {\n\t\tif (strchr(\"\\t\\r\\n\", *p) ||\n\t\t    (*p >= 32 && *p <= 127) || (*p >= 160)) {\n\t\t\tfputc(*p, fp);\n\t\t} else {\n\t\t\tfprintf(fp, \"^%c\", (*p & 0x1f) + 'A' - 1);\n\t\t}\n\t}\n\tfflush(fp);\n}\n\n\nstatic void getuidtty(char **userp, char **ttyp)\n{\n\tstruct passwd \t\t*pwd;\n\tuid_t\t\t\tuid;\n\tchar\t\t\t*tty;\n\tstatic char\t\tuidbuf[32];\n\tstatic char\t\tttynm[UT_LINESIZE + 4];\n\tstatic int\t\tinit = 0;\n\n\tif (!init) {\n\n\t\tuid = getuid();\n\t\tif ((pwd = getpwuid(uid)) != NULL) {\n\t\t\tuidbuf[0] = 0;\n\t\t\tstrncat(uidbuf, pwd->pw_name, sizeof(uidbuf) - 1);\n\t\t} else {\n                        /* Using variable number of data parameters in one\n                        function makes the Clang compiler cry. -- Jesse\n\t\t\tsprintf(uidbuf, uid ? \"uid %d\" : \"root\", (int)uid);\n                        */\n                        if (uid)\n                           sprintf(uidbuf, \"uid %d\", (int) uid);\n                        else\n                           sprintf(uidbuf, \"root\");\n\t\t}\n\n\t\tif ((tty = ttyname(0)) != NULL) {\n\t\t\tconst size_t plen = strlen(_PATH_DEV);\n\t\t\tif (strncmp(tty, _PATH_DEV, plen) == 0) {\n\t\t\t\ttty += plen;\n\t\t\t\tif (tty[0] == '/')\n\t\t\t\t\ttty++;\n\t\t\t}\n\t\t\tsnprintf(ttynm, sizeof(ttynm), \"(%.*s) \",\n\t\t\t\t UT_LINESIZE, tty);\n\t\t} else\n\t\t\tttynm[0] = 0;\n\t\tinit++;\n\t}\n\n\t*userp = uidbuf;\n\t*ttyp  = ttynm;\n}\n\n/*\n *\tCheck whether given filename looks like tty device.\n */\nstatic int file_isatty(const char *fname)\n{\n\tstruct stat\t\tst;\n\tint\t\t\tmajor;\n\n\tif (stat(fname, &st) < 0)\n\t\treturn 0;\n\n\tif (st.st_nlink != 1 || !S_ISCHR(st.st_mode))\n\t\treturn 0;\n\n\t/*\n\t *\tIt would be an impossible task to list all major/minors\n\t *\tof tty devices here, so we just exclude the obvious\n\t *\tmajors of which just opening has side-effects:\n\t *\tprinters and tapes.\n\t */\n\tmajor = major(st.st_dev);\n\tif (major == 1 || major == 2 || major == 6 || major == 9 ||\n\t    major == 12 || major == 16 || major == 21 || major == 27 ||\n\t    major == 37 || major == 96 || major == 97 || major == 206 ||\n\t    major == 230) return 0;\n\n\treturn 1;\n}\n\n/*\n *\tWall function.\n */\nvoid wall(const char *text, int remote)\n{\n\tFILE\t\t\t*tp;\n\tstruct sigaction\tsa;\n\tstruct utmp\t\t*utmp;\n\ttime_t\t\t\tt;\n\tchar\t\t\tterm[UT_LINESIZE+ strlen(_PATH_DEV) + 1];\n\tchar\t\t\tline[256];\n\tchar\t\t\thostname[HOST_NAME_MAX+1];\n\tchar\t\t\t*date, *p;\n\tchar\t\t\t*user, *tty;\n\tint\t\t\tfd, flags;\n\n\t/*\n\t *\tMake sure tp and fd aren't in a register. Some versions\n\t *\tof gcc clobber those after longjmp (or so I understand).\n\t */\n\t(void) &tp;\n\t(void) &fd;\n\n\tgetuidtty(&user, &tty);\n\n\t/* Get and report current hostname, to make it easier to find\n\t   out which machine is being shut down. */\n\tif (0 != gethostname(hostname, sizeof(hostname))) {\n\t\tstrncpy(hostname, \"[unknown]\", sizeof(hostname)-1);\n\t}\n\t/* If hostname is truncated, it is unspecified if the string\n\t   is null terminated or not.  Make sure we know it is null\n\t   terminated. */\n\thostname[sizeof(hostname)-1] = 0;\n\n\t/* Get the time */\n\ttime(&t);\n\tdate = ctime(&t);\n        if (! date)\n           date = \" \";\n\tfor(p = date; *p && *p != '\\n'; p++)\n\t\t;\n\t*p = 0;\n\t\n\tif (remote) {\n\t\tsnprintf(line, sizeof(line),\n\t\t\t\"\\r\\nRemote broadcast message (%s):\\r\\n\\r\\n\",\n\t\t\tdate);\n\t} else {\n\t\tsnprintf(line, sizeof(line),\n\t\t\t\"\\r\\nBroadcast message from %s@%s %s(%s):\\r\\n\\r\\n\",\n\t\t\tuser, hostname, tty, date);\n\t}\n\n\t/*\n\t *\tFork to avoid us hanging in a write()\n\t */\n\tif (fork() != 0)\n\t\treturn;\n\t\n\tmemset(&sa, 0, sizeof(sa));\n\tsa.sa_handler = handler;\n\tsa.sa_flags = 0;\n\tsigemptyset(&sa.sa_mask);\n\tsigaction(SIGALRM, &sa, NULL);\n\n\tsetutent();\n\n\twhile ((utmp = getutent()) != NULL) {\n\t\tif(utmp->ut_type != USER_PROCESS ||\n\t\t   utmp->ut_user[0] == 0) continue;\n\t\tif (strncmp(utmp->ut_line, _PATH_DEV, strlen(_PATH_DEV)) == 0) {\n\t\t\tterm[0] = 0;\n\t\t\tstrncat(term, utmp->ut_line, sizeof(term)-1);\n\t\t} else\n\t\t\tsnprintf(term, sizeof(term), _PATH_DEV \"%.*s\",\n\t\t\t\tUT_LINESIZE, utmp->ut_line);\n\t\tif (strstr(term, \"/../\")) continue;\n\n\t\tfd = -1;\n\t\ttp = NULL;\n\n\t\t/*\n\t\t *\tOpen it non-delay\n\t\t */\n\t\tif (sigsetjmp(jbuf, 1) == 0) {\n\t\t\talarm(2);\n\t\t\tflags = O_WRONLY|O_NDELAY|O_NOCTTY;\n\t\t\tif (file_isatty(term) &&\n\t\t\t    (fd = open(term, flags)) >= 0) {\n\t\t\t\tif (isatty(fd) &&\n\t\t\t\t    (tp = fdopen(fd, \"w\")) != NULL) {\n\t\t\t\t\tfputs(line, tp);\n\t\t\t\t\tfeputs(text, tp);\n\t\t\t\t\tfflush(tp);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\talarm(0);\n\t\tif (fd >= 0) close(fd);\n\t\tif (tp != NULL) fclose(tp);\n\t}\n\tendutent();\n\n\texit(0);\n}\n\n"
  },
  {
    "path": "src/fstab-decode.c",
    "content": "/* fstab-decode(8).\n\nCopyright (c) 2006 Red Hat, Inc. All rights reserved.\n\nThis copyrighted material is made available to anyone wishing to use, modify,\ncopy, or redistribute it subject to the terms and conditions of the GNU General\nPublic License v.2.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with\nthis program; if not, write to the Free Software Foundation, Inc., 51 Franklin\nStreet, Fifth Floor, Boston, MA 02110-1301, USA.\n\nAuthor: Miloslav Trmac <mitr@redhat.com> */\n\n#include <errno.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n\n/* Decode the fstab-encoded string in place. */\nstatic void\ndecode(char *s)\n{\n\tconst char *src;\n\tchar *dest;\n\n\tsrc = s;\n\tdest = s;\n\twhile (*src != '\\0') {\n\t\tif (*src != '\\\\')\n\t\t\t*dest = *src++;\n\t\telse {\n\t\t\tstatic const struct repl {\n\t\t\t\tchar orig[4];\n\t\t\t\tsize_t len;\n\t\t\t\tchar new;\n\t\t\t} repls[] = {\n#define R(X, Y) { X, sizeof(X) - 1, Y }\n\t\t\t\tR(\"\\\\\", '\\\\'),\n\t\t\t\tR(\"011\", '\\t'),\n\t\t\t\tR(\"012\", '\\n'),\n\t\t\t\tR(\"040\", ' '),\n\t\t\t\tR(\"134\", '\\\\')\n#undef R\n\t\t\t};\n\n\t\t\tsize_t i;\n\n\t\t\tfor (i = 0; i < sizeof (repls) / sizeof (repls[0]);\n\t\t\t     i++) {\n\t\t\t\tif (memcmp(src + 1, repls[i].orig,\n\t\t\t\t\t   repls[i].len) == 0) {\n\t\t\t\t\t*dest = repls[i].new;\n\t\t\t\t\tsrc += 1 + repls[i].len;\n\t\t\t\t\tgoto found;\n\t\t\t\t}\n\t\t\t}\n\t\t\t*dest = *src++;\n\t\tfound:\n\t\t\t;\n\t\t}\n\t\tdest++;\n\t}\n\t*dest = '\\0';\n}\n\nint\nmain (int argc, char *argv[])\n{\n\tsize_t i;\n\n\tif (argc < 2) {\n\t\tfprintf(stderr, \"Usage: fstab-decode command [arguments]\\n\");\n\t\treturn EXIT_FAILURE;\n\t}\n\tfor (i = 2; i < (size_t)argc; i++)\n\t\tdecode(argv[i]);\n\texecvp(argv[1], argv + 1);\n\tfprintf(stderr, \"fstab-decode: %s: %s\\n\", argv[1], strerror(errno));\n\treturn 127;\n}\n"
  },
  {
    "path": "src/halt.c",
    "content": "/*\n * Halt\t\tStop the system running.\n *\t\tIt re-enables CTRL-ALT-DEL, so that a hard reboot can\n *\t\tbe done. If called as reboot, it will reboot the system.\n *\n *\t\tIf the system is not in runlevel 0 or 6, halt will just\n *\t\texecute a \"shutdown -h\" to halt the system, and reboot will\n *\t\texecute an \"shutdown -r\". This is for compatibility with\n *\t\tsysvinit 2.4.\n *\n * Usage:\thalt [-n] [-w] [-d] [-f] [-h] [-i] [-p] [-k]\n *\t\t-n: don't sync before halting the system\n *\t\t-w: only write a wtmp reboot record and exit.\n *\t\t-d: don't write a wtmp record.\n *\t\t-f: force halt/reboot, don't call shutdown.\n *\t\t-h: put harddisks in standby mode\n *\t\t-i: shut down all network interfaces.\n *\t\t-p: power down the system (if possible, otherwise halt).\n *\t\t-k: reboot the system using kexec.\n *              -m: allow user to pass in message to Linux kernel to enable switching partitions\n *\n *\t\tReboot and halt are both this program. Reboot\n *\t\tis just a link to halt. Invoking the program\n *\t\tas poweroff implies the -p option.\n *\n * Author:\tMiquel van Smoorenburg, miquels@cistron.nl\n *\n * Version:\t2.86,  30-Jul-2004\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/param.h>\n#include <stdlib.h>\n#include <utmp.h>\n#include <fcntl.h>\n#include <string.h>\n#include <unistd.h>\n#include <sys/times.h>\n#include <time.h>\n#include <signal.h>\n#include <stdio.h>\n#include <getopt.h>\n#ifdef __linux__\n#include <linux/reboot.h>\n#include <sys/syscall.h>\n#endif\n#include \"reboot.h\"\n#include \"runlevellog.h\"\n\nchar *Version = \"@(#)halt  2.86  31-Jul-2004 miquels@cistron.nl\";\nchar *progname;\n\n#define KERNEL_MONITOR\t1 /* If halt() puts you into the kernel monitor. */\n#define RUNLVL_PICKY\t0 /* Be picky about the runlevel */\n\nextern int ifdown(void);\nextern int hddown(void);\nextern int hdflush(void);\nextern void write_wtmp(char *user, char *id, int pid, int type, char *line);\n\n/*\n *\tSend usage message.\n */\nvoid usage(void)\n{\n\tfprintf(stderr, \"usage: %s [-d] [-f] [-h] [-i] [-n] [-w]%s%s\\n\",\n\t\tprogname,\n\t\tstrcmp(progname, \"halt\") ? \"\" : \" [-p]\",\n\t\tstrcmp(progname, \"reboot\") ? \"\" : \" [-k] [-m <message>]\");\n\tfprintf(stderr, \"\\t-d: don't write a wtmp record.\\n\");\n\tfprintf(stderr, \"\\t-f: force halt/reboot, don't call shutdown.\\n\");\n\tfprintf(stderr, \"\\t-h: put harddisks in standby mode.\\n\");\n\tfprintf(stderr, \"\\t-i: shut down all network interfaces.\\n\");\n\tfprintf(stderr, \"\\t-m: pass message from user to reboot process.\\n\");\n\tfprintf(stderr, \"\\t-n: don't sync before halting the system\\n\");\n\tfprintf(stderr, \"\\t-w: only write a wtmp reboot record and exit.\\n\");\n\tif (!strcmp(progname, \"halt\"))\n\t\tfprintf(stderr, \"\\t-p: power down the system (if possible, otherwise halt).\\n\");\n\tif (!strcmp(progname, \"reboot\"))\n\t\tfprintf(stderr, \"\\t-k: reboot the system using kexec.\\n\");\n\texit(1);\n}\n\n/*\n *\tSee if we were started directly from init.\n *\tGet the runlevel from /var/run/utmp or the environment.\n *      Or the /var/run/runlevel log.\n */\nint get_runlevel(void)\n{\n\tstruct utmp *ut;\n\tchar *r;\n        int runlevel, status;\n\n#if RUNLVL_PICKY\n\ttime_t boottime;\n#endif\n\n\t/*\n\t *\tFirst see if we were started directly from init.\n\t */\n\tif (getenv(\"INIT_VERSION\") && (r = getenv(\"RUNLEVEL\")) != NULL)\n\t\treturn *r;\n\n\t/*\n\t *\tHmm, failed - read runlevel from /var/run/utmp..\n\t */\n#if RUNLVL_PICKY\n\t/*\n\t *\tGet boottime from the kernel.\n\t */\n\ttime(&boottime);\n\tboottime -= (times(NULL) / HZ);\n#endif\n\n\t/*\n\t *\tFind runlevel in utmp.\n\t */\n\tsetutent();\n\twhile ((ut = getutent()) != NULL) {\n#if RUNLVL_PICKY\n\t\t/*\n\t\t *\tOnly accept value if it's from after boottime.\n\t\t */\n\t\tif (ut->ut_type == RUN_LVL && ut->ut_time > boottime)\n\t\t\treturn (ut->ut_pid & 255);\n#else\n\t\tif (ut->ut_type == RUN_LVL)\n\t\t\treturn (ut->ut_pid & 255);\n#endif\n\t}\n\tendutent();\n\n        /* Did not find utmp entry, try to read from log file */\n        status = Read_Runlevel_Log(&runlevel);\n        if (status)\n           return runlevel;\n\n\t/* This should not happen but warn the user! */\n\tfprintf(stderr, \"WARNING: could not determine runlevel\"\n\t\t\" - doing soft %s\\n\", progname);\n\tfprintf(stderr, \"  (it's better to use shutdown instead of %s\"\n\t\t\" from the command line)\\n\", progname);\n\n\treturn -1;\n}\n\n/*\n *\tSwitch to another runlevel.\n */\nvoid do_shutdown(char *fl, int should_poweroff, char *tm)\n{\n\tchar *args[9];\n\tint i = 0;\n\n\targs[i++] = \"shutdown\";\n\targs[i++] = fl;\n        if (! strcmp(fl, \"-h\"))\n           args[i++] = (should_poweroff ? \"-P\" : \"-H\");\n\tif (tm) {\n\t\targs[i++] = \"-t\";\n\t\targs[i++] = tm;\n\t}\n\targs[i++] = \"now\";\n\targs[i++] = NULL;\n\n\texecv(\"/sbin/shutdown\", args);\n\texecv(\"/etc/shutdown\", args);\n\texecv(\"/bin/shutdown\", args);\n\n\tperror(\"shutdown\");\n\texit(1);\n}\n\n/*\n *\tMain program.\n *\tWrite a wtmp entry and reboot cq. halt.\n */\nint main(int argc, char **argv)\n{\n\tint do_reboot = 0;\n\tint do_sync = 1;\n\tint do_wtmp = 1;\n\tint do_nothing = 0;\n\tint do_hard = 0;\n\tint do_ifdown = 0;\n\tint do_hddown = 0;\n\tint do_poweroff = 0;\n\tint do_kexec = 0;\n        char *user_message = NULL;\n\tint c;\n\tchar *tm = NULL;\n\n\t/*\n\t *\tFind out who we are\n\t */\n\t/* Remove dash passed on in argv[0] when used as login shell. */\n\tif (argv[0][0] == '-') argv[0]++;\n\tif ((progname = strrchr(argv[0], '/')) != NULL)\n\t\tprogname++;\n\telse\n\t\tprogname = argv[0];\n\n\tif (!strcmp(progname, \"reboot\")) do_reboot = 1;\n\tif (!strcmp(progname, \"poweroff\")) do_poweroff = 1;\n\n\t/*\n\t *\tGet flags\n\t */\n\twhile((c = getopt(argc, argv, \":ihdfm:npwkt:\")) != EOF) {\n\t\tswitch(c) {\n\t\t\tcase 'n':\n\t\t\t\tdo_sync = 0;\n\t\t\t\tdo_wtmp = 0;\n\t\t\t\tbreak;\n\t\t\tcase 'w':\n\t\t\t\tdo_nothing = 1;\n\t\t\t\tbreak;\n\t\t\tcase 'd':\n\t\t\t\tdo_wtmp = 0;\n\t\t\t\tbreak;\n\t\t\tcase 'f':\n\t\t\t\tdo_hard = 1;\n\t\t\t\tbreak;\n\t\t\tcase 'i':\n\t\t\t\tdo_ifdown = 1;\n\t\t\t\tbreak;\n\t\t\tcase 'h':\n\t\t\t\tdo_hddown = 1;\n\t\t\t\tbreak;\n\t\t\tcase 'p':\n\t\t\t\tdo_poweroff = 1;\n\t\t\t\tbreak;\n\t\t\tcase 'k':\n\t\t\t\tdo_kexec = 1;\n\t\t\t\tbreak;\n                        case 'm':\n                                user_message = optarg;\n                                do_hard = 1;\n                                break;\n\t\t\tcase 't':\n\t\t\t\ttm = optarg;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tusage();\n\t\t}\n\t }\n\tif (argc != optind) usage();\n\n\tif (geteuid() != 0) {\n\t\tfprintf(stderr, \"%s: must be superuser.\\n\", progname);\n\t\texit(1);\n\t}\n\n\tif (chdir(\"/\")) {\n\t\tfprintf(stderr, \"%s: chdir(/): %m\\n\", progname);\n\t\texit(1);\n\t}\n\n\tif (!do_hard && !do_nothing) {\n\t\tc = get_runlevel();\n\n\t\t/*\n\t\t *\t We can't reboot using kexec through this path.\n\t\t */\n\t\tif (c != '6' && do_reboot && do_kexec) {\n\t\t\tfprintf(stderr, \"ERROR: using -k at this\"\n\t\t\t\t\" runlevel requires also -f\\n\"\n\t\t\t\t\"  (You probably want instead to reboot\"\n\t\t\t\t\" normally and let your reboot\\n\"\n\t\t\t\t\"   script, usually /etc/init.d/reboot,\"\n\t\t\t\t\" specify -k)\\n\");\n\t\t\texit(1);\n\t\t}\n\n\t\t/*\n\t\t *\tSee if we are in runlevel 0 or 6.\n\t\t */\n\t\tif (c != '0' && c != '6')\n\t\t\tdo_shutdown(do_reboot ? \"-r\" : \"-h\", do_poweroff, tm);\n\t}\n\n\t/*\n\t *\tRecord the fact that we're going down\n\t */\n\tif (do_wtmp)\n\t\twrite_wtmp(\"shutdown\", \"~~\", 0, RUN_LVL, \"~~\");\n\n\t/*\n\t *\tExit if all we wanted to do was write a wtmp record.\n\t */\n\tif (do_nothing && !do_hddown && !do_ifdown) exit(0);\n\n\tif (do_sync) {\n\t\tsync();\n\t\t/* Sync should be fine on its own for making sure data is written.\n                   We probably call shutdown after this anyway to clean up.\n                   -- Jesse\n                sleep(2);\n                */\n\t}\n\n\tif (do_ifdown)\n\t\t(void)ifdown();\n\n\tif (do_hddown)\n\t\t(void)hddown();\n\telse\n\t\t(void)hdflush();\n\n\tif (do_nothing) exit(0);\n\n\tif (do_reboot) {\n\t\t/*\n\t\t *\tkexec or reboot\n\t\t */\n\t\tif (do_kexec)\n\t\t\tinit_reboot(BMAGIC_KEXEC);\n\n                /* Regular reboot, but with special user message */\n                #ifdef __linux__\n                if (user_message)\n                {\n                   syscall(SYS_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, \n                           LINUX_REBOOT_CMD_RESTART2, user_message);\n                }\n                #endif\n\t\t/*\n\t\t *\tFall through if failed\n\t\t */\n\t\tinit_reboot(BMAGIC_REBOOT);\n\t} else {\n\t\t/*\n\t\t *\tTurn on hard reboot, CTRL-ALT-DEL will reboot now\n\t\t */\n#ifdef BMAGIC_HARD\n\t\tinit_reboot(BMAGIC_HARD);\n#endif\n\n\t\t/*\n\t\t *\tStop init; it is insensitive to the signals sent\n\t\t *\tby the kernel.\n\t\t */\n\t\tkill(1, SIGTSTP);\n\n\t\t/*\n\t\t *\tHalt or poweroff.\n\t\t */\n\t\tif (do_poweroff)\n\t\t\tinit_reboot(BMAGIC_POWEROFF);\n\t\t/*\n\t\t *\tFallthrough if failed.\n\t\t */\n\t\tinit_reboot(BMAGIC_HALT);\n\t}\n\n\t/*\n\t *\tIf we return, we (c)ontinued from the kernel monitor.\n\t */\n#ifdef BMAGIC_SOFT\n\tinit_reboot(BMAGIC_SOFT);\n#endif\n\tkill(1, SIGCONT);\n\n\texit(0);\n}\n"
  },
  {
    "path": "src/hddown.c",
    "content": "/*\n * hddown.c\tFind all disks on the system and\n *\t\tshut them down.\n *\n * Copyright (C) 2003 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\nchar *v_hddown = \"@(#)hddown.c  1.02  22-Apr-2003  miquels@cistron.nl\";\n\n#ifndef _GNU_SOURCE\n#define _GNU_SOURCE\n#endif\n#include <libgen.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <time.h>\n#include <string.h>\n#include <fcntl.h>\n#include <dirent.h>\n\n#ifdef __linux__\n\n#include <sys/ioctl.h>\n#include <linux/hdreg.h>\n#include <linux/fs.h>\n\n#ifndef USE_SYSFS\n# define USE_SYSFS\t1\n#endif\n#if defined(USE_SYSFS) && (USE_SYSFS == 1)\n/*\n * sysfs part\tFind all disks on the system, list out IDE and unmanaged\n *\t\tSATA disks, flush the cache of those and shut them down.\n * Author:\tWerner Fink <werner@suse.de>, 2007/06/12\n *\n */\n#include <limits.h>\n#include <errno.h>\n#include <sys/stat.h>\n#include <sys/types.h>\n#ifdef WORDS_BIGENDIAN\n#include <byteswap.h>\n#endif\n\n#define SYS_BLK\t\t\"/sys/block\"\n#define SYS_CLASS\t\"/sys/class/scsi_disk\"\n#define DEV_BASE\t\"/dev\"\n#define ISSPACE(c)\t(((c)==' ')||((c)=='\\n')||((c)=='\\t')||((c)=='\\v')||((c)=='\\r')||((c)=='\\f'))\n\n/* Used in flush_cache_ext(), compare with <linux/hdreg.h> */\n#define IDBYTES\t\t512\n#define MASK_EXT\t0xE000\t\t/* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */\n#define TEST_EXT\t0x6000\n\n/* Maybe set in list_disks() and used in do_standby_disk() */\n#define DISK_IS_IDE\t0x00000001\n#define DISK_IS_SATA\t0x00000002\n#define DISK_EXTFLUSH\t0x00000004\n#define DISK_REMOVABLE\t0x00000008\n#define DISK_MANAGED\t0x00000010\n#define DISK_FLUSHONLY\t0x00000020\n\nstatic char *strstrip(char *str);\nstatic FILE *hdopen(const char* const format, const char* const name);\nstatic int flush_cache_ext(const char *device);\n\n/*\n *\tFind all disks through /sys/block.\n */\nstatic char *list_disks(DIR* blk, unsigned int* flags)\n{\n\tstruct dirent *d;\n\n\twhile ((d = readdir(blk))) {\n\t\t(*flags) = 0;\n\t\tif (d->d_name[1] == 'd' && (d->d_name[0] == 'h' || d->d_name[0] == 's')) {\n\t\t\tchar buf[NAME_MAX+1], lnk[NAME_MAX+1], *ptr;\n\t\t\tFILE *fp;\n\t\t\tint ret;\n\n\t\t\tfp = hdopen(SYS_BLK \"/%s/removable\", d->d_name);\n\t\t\tif (0 == (long)fp || -1 == (long)fp) {\n\t\t\t\tif (-1 == (long)fp)\n\t\t\t\t\tgoto empty;\t/* error */\n\t\t\t\tcontinue;\t\t/* no entry `removable' */\n\t\t\t}\n\n\t\t\tret = getc(fp);\n\t\t\tfclose(fp);\n\n\t\t\tif (ret != '0')\n\t\t\t\t(*flags) |= DISK_REMOVABLE;\n\n\t\t\tif (d->d_name[0] == 'h') {\n\t\t\t\tif ((*flags) & DISK_REMOVABLE)\n\t\t\t\t\tcontinue;\t/* not a hard disk */\n\n\t\t\t\t(*flags) |= DISK_IS_IDE;\n\t\t\t\tif ((ret = flush_cache_ext(d->d_name))) {\n\t\t\t\t\tif (ret < 0)\n\t\t\t\t\t\tgoto empty;\n\t\t\t\t\t(*flags) |= DISK_EXTFLUSH;\n\t\t\t\t}\n\t\t\t\tbreak;\t\t\t/* old IDE disk not managed by kernel, out here */\n\t\t\t}\n\n\t\t\tret = snprintf(buf, sizeof(buf), SYS_BLK \"/%s/device\", d->d_name);\n\t\t\tif ((ret >= (int)sizeof(buf)) || (ret < 0))\n\t\t\t\tgoto empty;\t\t/* error */\n\n\t\t\tret = readlink(buf, lnk, sizeof(lnk));\n\t\t\tif (ret >= (int)sizeof(lnk))\n\t\t\t\tgoto empty;\t\t/* error */\n\t\t\tif (ret < 0) {\n\t\t\t\tif (errno != ENOENT)\n\t\t\t\t\tgoto empty;\t/* error */\n\t\t\t\tcontinue;\t\t/* no entry `device' */\n\t\t\t}\n\t\t\tlnk[ret] = '\\0';\n\n\t\t\tptr = basename(lnk);\n\t\t\tif (!ptr || !*ptr)\n\t\t\t\tcontinue;\t\t/* should not happen */\n\n\t\t\tfp = hdopen(SYS_CLASS \"/%s/manage_start_stop\", ptr);\n\t\t\tif (0 == (long)fp || -1 == (long)fp) {\n\t\t\t\tif (-1 == (long)fp)\n\t\t\t\t\tgoto empty;\t/* error */\n\t\t\t} else {\n\t\t\t\tret = getc(fp);\n\t\t\t\tfclose(fp);\n\n\t\t\t\tif (ret != '0') {\n\t\t\t\t\t(*flags) |= DISK_MANAGED;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfp = hdopen(SYS_BLK \"/%s/device/vendor\", d->d_name);\n\t\t\tif (0 == (long)fp || -1 == (long)fp) {\n\t\t\t\tif (-1 == (long)fp)\n\t\t\t\t\tgoto empty;\t/* error */\n\t\t\t\tcontinue;\t\t/* no entry `device/vendor' */\n\t\t\t}\n\n\t\t\tptr = fgets(buf, sizeof(buf), fp);\n\t\t\tfclose(fp);\n\t\t\tif (ptr == (char*)0)\n\t\t\t\tcontinue;\t\t/* should not happen */\n\n\t\t\tptr = strstrip(buf);\n\t\t\tif (*ptr == '\\0')\n\t\t\t\tcontinue;\t\t/* should not happen */\n\n\t\t\tif (strncmp(buf, \"ATA\", sizeof(buf)) == 0) {\n\t\t\t\tif ((*flags) & DISK_REMOVABLE)\n\t\t\t\t\tcontinue;\t/* not a hard disk */\n\n\t\t\t\t(*flags) |= (DISK_IS_IDE|DISK_IS_SATA);\n\t\t\t\tif ((ret = flush_cache_ext(d->d_name))) {\n\t\t\t\t\tif (ret < 0)\n\t\t\t\t\t\tgoto empty;\n\t\t\t\t\t(*flags) |= DISK_EXTFLUSH;\n\t\t\t\t}\n\t\t\t\tbreak;\t\t\t/* new SATA disk to shutdown, out here */\n\t\t\t}\n\n\t\t\tif (((*flags) & DISK_REMOVABLE) == 0)\n\t\t\t\tcontinue;\t\t/* Seems to be a real SCSI disk */\n\n\t\t\tif ((ret = flush_cache_ext(d->d_name))) {\n\t\t\t\tif (ret < 0)\n\t\t\t\t\tgoto empty;\n\t\t\t\t(*flags) |= DISK_EXTFLUSH;\n\t\t\t}\n\t\t\tbreak;\t\t\t\t/* Removable disk like USB stick to shutdown */\n\t\t}\n\t}\n\tif (d == (struct dirent*)0)\n\t\tgoto empty;\n\treturn d->d_name;\nempty:\n\treturn (char*)0;\n}\n\n/*\n *\tPut an IDE/SCSI/SATA disk in standby mode.\n *\tCode stolen from hdparm.c\n */\nstatic int do_standby_disk(char *device, unsigned int flags)\n{\n#ifndef WIN_STANDBYNOW1\n#define WIN_STANDBYNOW1\t\t0xE0\n#endif\n#ifndef WIN_STANDBYNOW2\n#define WIN_STANDBYNOW2\t\t0x94\n#endif\n#ifndef WIN_FLUSH_CACHE_EXT\n#define WIN_FLUSH_CACHE_EXT\t0xEA\n#endif\n#ifndef WIN_FLUSH_CACHE\n#define WIN_FLUSH_CACHE\t\t0xE7\n#endif\n\tunsigned char flush1[4] = {WIN_FLUSH_CACHE_EXT,0,0,0};\n\tunsigned char flush2[4] = {WIN_FLUSH_CACHE,0,0,0};\n\tunsigned char stdby1[4] = {WIN_STANDBYNOW1,0,0,0};\n\tunsigned char stdby2[4] = {WIN_STANDBYNOW2,0,0,0};\n\tchar buf[NAME_MAX+1];\n\tint fd, ret;\n\n\tret = snprintf(buf, sizeof(buf), DEV_BASE \"/%s\", device);\n\tif ((ret >= (int)sizeof(buf)) || (ret < 0))\n\t\treturn -1;\n\n\tif ((fd = open(buf, O_RDWR|O_NONBLOCK)) < 0)\n\t\treturn -1;\n\n\tswitch (flags & DISK_EXTFLUSH) {\n\tcase DISK_EXTFLUSH:\n\t\tif ((ret = ioctl(fd, HDIO_DRIVE_CMD, &flush1)) == 0)\n\t\t\tbreak;\n                /* Else Fall through */\n\t\t/* Extend flush rejected, try standard flush */\n\tdefault:\n\t\tret = ioctl(fd, HDIO_DRIVE_CMD, &flush2) &&\n\t\t      ioctl(fd, BLKFLSBUF);\n\t\tbreak;\n\t}\n\n\tif ((flags & DISK_FLUSHONLY) == 0x0) {\n\t\tret = ioctl(fd, HDIO_DRIVE_CMD, &stdby1) &&\n\t\t      ioctl(fd, HDIO_DRIVE_CMD, &stdby2);\n\t}\n\n\tclose(fd);\n\n\tif (ret)\n\t\treturn -1;\n\treturn 0;\n}\n\n/*\n *\tList all disks and put them in standby mode.\n *\tThis has the side-effect of flushing the writecache,\n *\twhich is exactly what we want on poweroff.\n */\nint hddown(void)\n{\n\tunsigned int flags;\n\tchar *disk;\n\tDIR *blk;\n\n\tif ((blk = opendir(SYS_BLK)) == (DIR*)0)\n\t\treturn -1;\n\n\twhile ((disk = list_disks(blk, &flags)))\n\t\tdo_standby_disk(disk, flags);\n\n\treturn closedir(blk);\n}\n\n/*\n *\tList all disks and cause them to flush their buffers.\n */\nint hdflush(void)\n{\n\tunsigned int flags;\n\tchar *disk;\n\tDIR *blk;\n\n\tif ((blk = opendir(SYS_BLK)) == (DIR*)0)\n\t\treturn -1;\n\n\twhile ((disk = list_disks(blk, &flags)))\n\t\tdo_standby_disk(disk, (flags|DISK_FLUSHONLY));\n\n\treturn closedir(blk);\n}\n\n/*\n * Strip off trailing white spaces\n */\nstatic char *strstrip(char *str)\n{\n\tconst size_t len = strlen(str);\n\tif (len) {\n\t\tchar* end = str + len - 1;\n\t\twhile ((end != str) && ISSPACE(*end))\n\t\t\tend--;\n\t\t*(end + 1) = '\\0';\t\t\t/* remove trailing white spaces */\n\t}\n\treturn str;\n}\n\n/*\n * Open a sysfs file without getting a controlling tty and return\n * FILE* pointer.  Return 0 if the file didn't exist, or (FILE*)-1 if\n * something else went wrong.\n */\nstatic FILE *hdopen(const char* const format, const char* const name)\n{\n\tchar buf[NAME_MAX+1];\n\tFILE *fp = (FILE*)-1;\n\tint fd, ret;\n\t\n\tret = snprintf(buf, sizeof(buf), format, name);\n\tif ((ret >= (int)sizeof(buf)) || (ret < 0))\n\t\tgoto error;\t\t/* error */\n\n\tfd = open(buf, O_RDONLY|O_NOCTTY);\n\tif (fd < 0) {\n\t\tif (errno != ENOENT)\n\t\t\tgoto error;\t/* error */\n\t\tfp = (FILE*)0;\n\t\tgoto error;\t\t/* no entry `removable' */\n\t}\n\n\tfp = fdopen(fd, \"r\");\n\tif (fp == (FILE*)0)\n\t\tclose(fd);\t\t/* should not happen */\nerror:\n\treturn fp;\n}\n\n/*\n * Check IDE/(S)ATA hard disk identity for\n * the FLUSH CACHE EXT bit set.\n */\nstatic int flush_cache_ext(const char *device)\n{\n#ifndef WIN_IDENTIFY\n#define WIN_IDENTIFY\t\t0xEC\n#endif\n\tunsigned char args[4+IDBYTES];\n\tunsigned short *id = (unsigned short*)(&args[4]);\n\tchar buf[NAME_MAX+1], *ptr;\n\tint fd = -1, ret = 0;\n\tFILE *fp;\n\n\tfp = hdopen(SYS_BLK \"/%s/size\", device);\n\tif (0 == (long)fp || -1 == (long)fp) {\n\t\tif (-1 == (long)fp)\n\t\t\treturn -1;\t/* error */\n\t\tgoto out;\t\t/* no entry `size' */\n\t}\n\n\tptr = fgets(buf, sizeof(buf), fp);\n\tfclose(fp);\n\tif (ptr == (char*)0)\n\t\tgoto out;\t\t/* should not happen */\n\n\tptr = strstrip(buf);\n\tif (*ptr == '\\0')\n\t\tgoto out;\t\t/* should not happen */\n\n\tif ((size_t)atoll(buf) < (1<<28))\n\t\tgoto out;\t\t/* small disk */\n\t\t\n\tret = snprintf(buf, sizeof(buf), DEV_BASE \"/%s\", device);\n\tif ((ret >= (int)sizeof(buf)) || (ret < 0))\n\t\treturn -1;\t\t/* error */\n\n\tif ((fd = open(buf, O_RDONLY|O_NONBLOCK)) < 0)\n\t\tgoto out;\n\n\tmemset(&args[0], 0, sizeof(args));\n\targs[0] = WIN_IDENTIFY;\n\targs[3] = 1;\n\tif (ioctl(fd, HDIO_DRIVE_CMD, &args))\n\t\tgoto out;\n#ifdef WORDS_BIGENDIAN\n# if 0\n\t{\n\t\tconst unsigned short *end = id + IDBYTES/2;\n\t\tconst unsigned short *from = id;\n\t\tunsigned short *to = id;\n\n\t\twhile (from < end)\n\t\t\t*to++ = bswap_16(*from++);\n\t}\n# else\n\tid[83] = bswap_16(id[83]);\n# endif\n#endif\n\tif ((id[83] & MASK_EXT) == TEST_EXT)\n\t\tret = 1;\nout:\n\tif (fd >= 0)\n\t\tclose(fd);\n\treturn ret;\n}\n#else /* ! USE_SYSFS */\n#define MAX_DISKS\t64\n#define PROC_IDE\t\"/proc/ide\"\n#define DEV_BASE\t\"/dev\"\n\n/*\n *\tFind all IDE disks through /proc.\n */\nstatic int find_idedisks(const char **dev, int maxdev, int *count)\n{\n\tDIR *dd;\n\tFILE *fp;\n\tstruct dirent *d;\n\tchar buf[256];\n\n\tif ((dd = opendir(PROC_IDE)) == NULL)\n\t\treturn -1;\n\n\twhile (*count < maxdev && (d = readdir(dd)) != NULL) {\n\t\tif (strncmp(d->d_name, \"hd\", 2) != 0)\n\t\t\tcontinue;\n\t\tbuf[0] = 0;\n\t\tsnprintf(buf, sizeof(buf), PROC_IDE \"/%s/media\", d->d_name);\n\t\tif ((fp = fopen(buf, \"r\")) == NULL)\n\t\t\tcontinue;\n\t\tif (fgets(buf, sizeof(buf), fp) == 0 ||\n\t\t    strcmp(buf, \"disk\\n\") != 0) {\n\t\t\tfclose(fp);\n\t\t\tcontinue;\n\t\t}\n\t\tfclose(fp);\n\t\tsnprintf(buf, sizeof(buf), DEV_BASE \"/%s\", d->d_name);\n\t\tdev[(*count)++] = strdup(buf);\n\t}\n\tclosedir(dd);\n\n\treturn 0;\n}\n\n/*\n *\tFind all SCSI/SATA disks.\n */\nstatic int find_scsidisks(const char **dev, int maxdev, int *count)\n{\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sda\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sdb\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sdc\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sdd\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sde\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sdf\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sdg\";\n\tif (*count < maxdev) dev[(*count)++] = DEV_BASE \"/sdh\";\n\n\treturn 0;\n}\n\n/*\n *\tOpen the device node of a disk.\n */\nstatic int open_disk(const char *device)\n{\n\treturn open(device, O_RDWR);\n}\n\n/*\n *\tOpen device nodes of all disks, and store the file descriptors in fds.\n *\tThis has to be done in advance because accessing the device nodes\n *\tmight cause a disk to spin back up.\n */\nstatic int open_disks(const char **disks, int *fds, int count)\n{\n\tint i;\n\n\tfor (i = 0; i < count; i++)\n\t\tfds[i] = open_disk(disks[i]);\n\n\treturn 0;\n}\n\n/*\n *\tPut an IDE/SCSI/SATA disk in standby mode.\n *\tCode stolen from hdparm.c\n */\nstatic int do_standby_disk(int fd)\n{\n#ifndef WIN_STANDBYNOW1\n#define WIN_STANDBYNOW1 0xE0\n#endif\n#ifndef WIN_STANDBYNOW2\n#define WIN_STANDBYNOW2 0x94\n#endif\n\tunsigned char args1[4] = {WIN_STANDBYNOW1,0,0,0};\n\tunsigned char args2[4] = {WIN_STANDBYNOW2,0,0,0};\n\n\tif (fd < 0)\n\t\treturn -1;\n\n\tif (ioctl(fd, HDIO_DRIVE_CMD, &args1) &&\n\t    ioctl(fd, HDIO_DRIVE_CMD, &args2))\n\t\treturn -1;\n\n\treturn 0;\n}\n\n/*\n *\tPut all specified disks in standby mode.\n */\nstatic int do_standby_disks(const int *fds, int count)\n{\n\tint i;\n\n\tfor (i = 0; i < count; i++)\n\t\tdo_standby_disk(fds[i]);\n\n\treturn 0;\n}\n\n/*\n *\tFirst find all IDE/SCSI/SATA disks, then put them in standby mode.\n *\tThis has the side-effect of flushing the writecache,\n *\twhich is exactly what we want on poweroff.\n */\nint hddown(void)\n{\n\tconst char *disks[MAX_DISKS];\n\tint fds[MAX_DISKS];\n\tint count = 0;\n\tint result1, result2;\n\n\tresult1 = find_idedisks(disks, MAX_DISKS, &count);\n\tresult2 = find_scsidisks(disks, MAX_DISKS, &count);\n\n\topen_disks(disks, fds, count);\n\tdo_standby_disks(fds, count);\n\n\treturn (result1 ? result1 : result2);\n}\n\nint hdflush(void)\n{\n\treturn 0;\n}\n\n#endif /* ! USE_SYSFS */\n#else /* __linux__ */\n\nint hddown(void)\n{\n\treturn 0;\n}\n\nint hdflush(void)\n{\n\treturn 0;\n}\n\n#endif /* __linux__ */\n\n#ifdef STANDALONE\nint main(int argc, char **argv)\n{\n\treturn (hddown() == 0);\n}\n#endif\n\n"
  },
  {
    "path": "src/ifdown.c",
    "content": "/*\n * ifdown.c\tFind all network interfaces on the system and\n *\t\tshut them down.\n *\n * Copyright (C) 1998 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by \n * the Free Software Foundation; either version 2 of the License, or \n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful, \n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\nchar *v_ifdown = \"@(#)ifdown.c  1.11  02-Jun-1998  miquels@cistron.nl\";\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <time.h>\n#include <string.h>\n#include <errno.h>\n\n#include <sys/ioctl.h>\n#include <sys/socket.h>\n#include <sys/time.h>\n\n#include <net/if.h>\n#include <netinet/in.h>\n\n#define MAX_IFS\t64\n\n/* XXX: Ideally this would get detected at configure time... */\n#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \\\n    defined(__NetBSD__) || defined(__OpenBSD__)\n#define HAVE_SOCKADDR_SA_LEN 1\n#endif\n\n#ifndef _SIZEOF_ADDR_IFREQ\n#ifdef HAVE_SOCKADDR_SA_LEN\n#define _SIZEOF_ADDR_IFREQ(ifr) \\\n\t((ifr).ifr_addr.sa_len > sizeof(struct sockaddr) ? \\\n\t (sizeof((ifr).ifr_name) + (ifr).ifr_addr.sa_len) : \\\n\t  sizeof(struct ifreq))\n#else\n#define _SIZEOF_ADDR_IFREQ(ifr) sizeof(struct ifreq)\n#endif\n#endif\n\n/*\n *\tFirst, we find all shaper devices and down them. Then we\n *\tdown all real interfaces. This is because the comment in the\n *\tshaper driver says \"if you down the shaper device before the\n *\tattached interface your computer will follow\".\n */\nint ifdown(void)\n{\n\tchar ifr_buf[sizeof(struct ifreq) * MAX_IFS];\n\tchar *ifr_end;\n\tstruct ifconf ifc;\n\tint fd;\n\tint shaper;\n\n\tif ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {\n\t\tfprintf(stderr, \"ifdown: \");\n\t\tperror(\"socket\");\n\t\treturn -1;\n\t}\n\tifc.ifc_len = sizeof(ifr_buf);\n\tifc.ifc_buf = ifr_buf;\n\n\tif (ioctl(fd, SIOCGIFCONF, &ifc) < 0) {\n\t\tfprintf(stderr, \"ifdown: \");\n\t\tperror(\"SIOCGIFCONF\");\n\t\tclose(fd);\n\t\treturn -1;\n\t}\n\tifr_end = ifr_buf + ifc.ifc_len;\n\n\tfor (shaper = 1; shaper >= 0; shaper--) {\n\t\tchar *ifr_next = ifr_buf;\n\n\t\twhile (ifr_next < ifr_end) {\n\t\t\tstruct ifreq *ifr;\n\t\t\tint flags;\n\n\t\t\tifr = (struct ifreq *)ifr_next;\n\t\t\tifr_next += _SIZEOF_ADDR_IFREQ(*ifr);\n\n\t\t\tif ((strncmp(ifr->ifr_name, \"shaper\", 6) == 0)\n\t\t\t    != shaper) continue;\n\n\t\t\tif (strncmp(ifr->ifr_name, \"lo\", 2) == 0)\n\t\t\t\tcontinue;\n\t\t\tif (strchr(ifr->ifr_name, ':') != NULL)\n\t\t\t\tcontinue;\n\n\t\t\t/* Read interface flags */\n\t\t\tif (ioctl(fd, SIOCGIFFLAGS, ifr) < 0) {\n\t\t\t\tfprintf(stderr, \"ifdown: shutdown \");\n\t\t\t\tperror(ifr->ifr_name);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Expected in <net/if.h> according to\n\t\t\t * \"UNIX Network Programming\".\n\t\t\t */\n#ifdef ifr_flagshigh\n\t\t\tflags = (ifr->ifr_flags & 0xffff) |\n\t\t\t        (ifr->ifr_flagshigh << 16);\n#else\n\t\t\tflags = ifr->ifr_flags;\n#endif\n\t\t\tif (flags & IFF_UP) {\n\t\t\t\tflags &= ~(IFF_UP);\n#ifdef ifr_flagshigh\n\t\t\t\tifr->ifr_flags = flags & 0xffff;\n\t\t\t\tifr->ifr_flagshigh = flags >> 16;\n#else\n\t\t\t\tifr->ifr_flags = flags;\n#endif\n\t\t\t\tif (ioctl(fd, SIOCSIFFLAGS, ifr) < 0) {\n\t\t\t\t\tfprintf(stderr, \"ifdown: shutdown \");\n\t\t\t\t\tperror(ifr->ifr_name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tclose(fd);\n\n\treturn 0;\n}\n"
  },
  {
    "path": "src/init.c",
    "content": "/*\n * Init\t\tA System-V Init Clone.\n *\n * Usage:\t/sbin/init\n *\t\t     init [0123456SsQqAaBbCc]\n *\t\t  telinit [0123456SsQqAaBbCc]\n *\n * Version:\t@(#)init.c  2.86  30-Jul-2004  miquels@cistron.nl\n * Version:     init.c 2.90 18-Jun-2018 jsmith@resonatingmedia.com\n */\n\n/*\nVersion information is not placed in the top-level Makefile by default\n*/\n#ifndef VERSION\n#define VERSION \"3.14\"\n#endif\n/*\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\t\tCopyright (C) 2017-2019 Jesse Smith\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/ioctl.h>\n#include <sys/wait.h>\n#ifdef __linux__\n#include <sys/kd.h>\n#endif\n#include <sys/resource.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <errno.h>\n#include <stdio.h>\n#include <time.h>\n#include <fcntl.h>\n#include <string.h>\n#include <signal.h>\n#include <termios.h>\n#ifdef __FreeBSD__\n#include <utmpx.h>\n#else\n#include <utmp.h>\n#endif\n#include <ctype.h>\n#include <stdarg.h>\n#include <sys/ttydefaults.h>\n#include <sys/syslog.h>\n#include <sys/time.h>\n/*\n * inittab.d\n */\n#include <sys/types.h>\n#include <dirent.h>\n\n#ifdef WITH_SELINUX\n#  include <selinux/selinux.h>\n#endif\n#ifdef __FreeBSD__\nextern char **environ;\n#endif\n\n#ifdef __i386__\n#  ifdef __GLIBC__\n     /* GNU libc 2.x */\n#    define STACK_DEBUG 1\n#    if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0)\n       /* Only glibc 2.0 needs this */\n#      include <sigcontext.h>\n#    elif ( __GLIBC__ > 2) && ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))\n#      include <bits/sigcontext.h>\n#    endif\n#  endif\n#endif\n\n#include \"init.h\"\n#include \"initreq.h\"\n#include \"paths.h\"\n#include \"reboot.h\"\n#include \"runlevellog.h\"\n#include \"set.h\"\n\n#ifndef SIGPWR\n#  define SIGPWR SIGUSR2\n#endif\n\n#ifndef CBAUD\n#  define CBAUD\t\t0\n#endif\n#ifndef CBAUDEX\n#  define CBAUDEX\t0\n#endif\n\n/* Set a signal handler. */\n#define SETSIG(sa, sig, fun, flags) \\\n\t\tdo { \\\n\t\t\tmemset(&sa, 0, sizeof(sa)); \\\n\t\t\tsa.sa_handler = fun; \\\n\t\t\tsa.sa_flags = flags; \\\n\t\t\tsigemptyset(&sa.sa_mask); \\\n\t\t\tsigaction(sig, &sa, NULL); \\\n\t\t} while(0)\n\n/* Version information */\nchar *Version = \"@(#) init \" VERSION \" miquels@cistron.nl\";\nchar *bootmsg = \"version \" VERSION \" %s\";\n#define E_VERSION \"INIT_VERSION=sysvinit-\" VERSION\n\nCHILD *family = NULL;\t\t/* The linked list of all entries */\nCHILD *newFamily = NULL;\t/* The list after inittab re-read */\n\nCHILD ch_emerg = {\t\t/* Emergency shell */\n\tWAITING, 0, 0, 0, 0,\n\t\"~~\",\n\t\"S\",\n\t3,\n\t\"/sbin/sulogin\",\n\tNULL,\n\tNULL\n};\n\nCHILD ch_poweroff = {\n\t.action = ONCE,\n\t.id = \"~~\",\n\t.rlevel = \"S\",\n\t.process = \"/sbin/shutdown -hP now\"\n};\n\nchar runlevel = 'S';\t\t/* The current run level */\nchar thislevel = 'S';\t\t/* The current runlevel */\nchar prevlevel = 'N';\t\t/* Previous runlevel */\nint dfl_level = 0;\t\t/* Default runlevel */\nsig_atomic_t got_cont = 0;\t/* Set if we received the SIGCONT signal */\nsig_atomic_t got_signals;\t/* Set if we received a signal. */\nint emerg_shell = 0;\t\t/* Start emergency shell? */\nint wrote_wtmp_reboot = 1;\t/* Set when we wrote the reboot record */\nint wrote_utmp_reboot = 1;\t/* Set when we wrote the reboot record */\nint wrote_wtmp_rlevel = 1;\t/* Set when we wrote the runlevel record */\nint wrote_utmp_rlevel = 1;\t/* Set when we wrote the runlevel record */\nint sleep_time = WAIT_BETWEEN_SIGNALS;    /* Sleep time between TERM and KILL */\nchar *argv0;\t\t\t/* First arguments; show up in ps listing */\nint maxproclen;\t\t\t/* Maximal length of argv[0] with \\0 */\nstruct utmp utproto;\t\t/* Only used for sizeof(utproto.ut_id) */\nchar *console_dev;\t\t/* Console device. */\nint pipe_fd = -1;\t\t/* /run/initctl */\nint did_boot = 0;\t\t/* Did we already do BOOT* stuff? */\nint main(int, char **);\n\n/*\tUsed by re-exec part */\nint reload = 0;\t\t\t/* Should we do initialization stuff? */\nchar *myname=INIT;\t\t/* What should we exec */\nint oops_error;\t\t\t/* Used by some of the re-exec code. */\nconst char *Signature = \"12567362\";\t/* Signature for re-exec fd */\n\n/* Macro to see if this is a special action */\n#define ISPOWER(i) ((i) == POWERWAIT || (i) == POWERFAIL || \\\n\t\t    (i) == POWEROKWAIT || (i) == POWERFAILNOW || \\\n\t\t    (i) == CTRLALTDEL)\n\n/* ascii values for the `action' field. */\nstruct actions {\n  char *name;\n  int act;\n} actions[] = {\n  { \"respawn\", \t   RESPAWN\t},\n  { \"wait\",\t   WAIT\t\t},\n  { \"once\",\t   ONCE\t\t},\n  { \"boot\",\t   BOOT\t\t},\n  { \"bootwait\",\t   BOOTWAIT\t},\n  { \"powerfail\",   POWERFAIL\t},\n  { \"powerfailnow\",POWERFAILNOW },\n  { \"powerwait\",   POWERWAIT\t},\n  { \"powerokwait\", POWEROKWAIT\t},\n  { \"ctrlaltdel\",  CTRLALTDEL\t},\n  { \"off\",\t   OFF\t\t},\n  { \"ondemand\",\t   ONDEMAND\t},\n  { \"initdefault\", INITDEFAULT\t},\n  { \"sysinit\",\t   SYSINIT\t},\n  { \"kbrequest\",   KBREQUEST    },\n  { NULL,\t   0\t\t},\n};\n\n/*\n *\tState parser token table (see receive_state)\n */\nstruct {\n  char name[4];\t\n  int cmd;\n} cmds[] = {\n  { \"VER\", \t   C_VER\t},\n  { \"END\",\t   C_END\t},\n  { \"REC\",\t   C_REC\t},\n  { \"EOR\",\t   C_EOR\t},\n  { \"LEV\",\t   C_LEV\t},\n  { \"FL \",\t   C_FLAG\t},\n  { \"AC \",\t   C_ACTION\t},\n  { \"CMD\",\t   C_PROCESS\t},\n  { \"PID\",\t   C_PID\t},\n  { \"EXS\",\t   C_EXS\t},\n  { \"-RL\",\t   D_RUNLEVEL\t},\n  { \"-TL\",\t   D_THISLEVEL\t},\n  { \"-PL\",\t   D_PREVLEVEL\t},\n  { \"-SI\",\t   D_GOTSIGN\t},\n  { \"-WR\",\t   D_WROTE_WTMP_REBOOT},\n  { \"-WU\",\t   D_WROTE_UTMP_REBOOT},\n  { \"-ST\",\t   D_SLTIME\t},\n  { \"-DB\",\t   D_DIDBOOT\t},\n  { \"-LW\",\t   D_WROTE_WTMP_RLEVEL},\n  { \"-LU\",\t   D_WROTE_UTMP_RLEVEL},\n  { \"\",\t   \t   0\t\t}\n};\nstruct {\n\tchar *name;\n\tint mask;\n} flags[]={\n\t{\"RU\",RUNNING},\n\t{\"DE\",DEMAND},\n\t{\"XD\",XECUTED},\n\t{\"WT\",WAITING},\n\t{NULL,0}\n};\n\n#define NR_EXTRA_ENV\t16\nchar *extra_env[NR_EXTRA_ENV];\n\n#define MINI_SLEEP 10      /* ten milliseconds */\n#define SHORT_SLEEP 5000   /* five seconds */\n#define LONG_SLEEP 30000   /* 30 seconds sleep to deal with memory issues*/\n\n/*\n *\tSleep a number of milliseconds.\n *\n *\tThis only works correctly because Linux select updates\n *\tthe elapsed time in the struct timeval passed to select!\n */\nstatic\nvoid do_msleep(int msec)\n{\n\tstruct timeval tv;\n\n\ttv.tv_sec = msec / 1000;\n\ttv.tv_usec = (msec % 1000) * 1000;\n\n\twhile(select(0, NULL, NULL, NULL, &tv) < 0 && errno == EINTR)\n\t\t;\n}\n\n\n/*\n *\tNon-failing allocation routines (init cannot fail).\n */\nstatic\nvoid *imalloc(size_t size)\n{\n\tvoid\t*m;\n\n\twhile ((m = malloc(size)) == NULL) {\n\t\tinitlog(L_VB, \"out of memory\");\n\t\tdo_msleep(SHORT_SLEEP);\n\t}\n\tmemset(m, 0, size);\n\treturn m;\n}\n\nstatic\nchar *istrdup(const char *s)\n{\n\tchar\t*m;\n\tint\tl;\n\n\tl = strlen(s) + 1;\n\tm = imalloc(l);\n\tmemcpy(m, s, l);\n\treturn m;\n}\n\n\n/*\n *\tSend the state info of the previous running init to\n *\tthe new one, in a version-independant way.\n */\nstatic\nvoid send_state(int fd)\n{\n\tFILE\t*fp;\n\tCHILD\t*p;\n\tint\ti,val;\n\n\tfp = fdopen(fd,\"w\");\n\n\tfprintf(fp, \"VER%s\\n\", Version);\n\tfprintf(fp, \"-RL%c\\n\", runlevel);\n\tfprintf(fp, \"-TL%c\\n\", thislevel);\n\tfprintf(fp, \"-PL%c\\n\", prevlevel);\n\tfprintf(fp, \"-SI%u\\n\", got_signals);\n\tfprintf(fp, \"-WR%d\\n\", wrote_wtmp_reboot);\n\tfprintf(fp, \"-WU%d\\n\", wrote_utmp_reboot);\n\tfprintf(fp, \"-ST%d\\n\", sleep_time);\n\tfprintf(fp, \"-DB%d\\n\", did_boot);\n\n\tfor (p = family; p; p = p->next) {\n\t\tfprintf(fp, \"REC%s\\n\", p->id);\n\t\tfprintf(fp, \"LEV%s\\n\", p->rlevel);\n\t\tfor (i = 0, val = p->flags; flags[i].mask; i++)\n\t\t\tif (val & flags[i].mask) {\n\t\t\t\tval &= ~flags[i].mask;\n\t\t\t\tfprintf(fp, \"FL %s\\n\",flags[i].name);\n\t\t\t}\n\t\tfprintf(fp, \"PID%d\\n\",p->pid);\n\t\tfprintf(fp, \"EXS%u\\n\",p->exstat);\n\t\tfor(i = 0; actions[i].act; i++)\n\t\t\tif (actions[i].act == p->action) {\n\t\t\t\tfprintf(fp, \"AC %s\\n\", actions[i].name);\n\t\t\t\tbreak;\n\t\t\t}\n\t\tfprintf(fp, \"CMD%s\\n\", p->process);\n\t\tfprintf(fp, \"EOR\\n\");\n\t}\n\tfprintf(fp, \"END\\n\");\n\tfclose(fp);\n}\n\n/*\n *\tRead a string from a file descriptor.\n *\tQ: why not use fgets() ?\n *      A: Answer: looked into this. Turns out after all the checks\n *      required in the fgets() approach (removing newline, read errors, etc)\n *      the function is longer and takes approximately the same amount of\n *      time to do one big fgets and checks as it does to do a pile of getcs.\n *      We don't benefit from switching.\n *      - Jesse\n */\nstatic int get_string(char *p, int size, FILE *f)\n{\n\tint\tc;\n\n\twhile ((c = getc(f)) != EOF && c != '\\n') {\n\t\tif (--size > 0)\n\t\t\t*p++ = c;\n\t}\n\t*p = '\\0';\n\treturn (c != EOF) && (size > 0);\n}\n\n/*\n *\tRead trailing data from the state pipe until we see a newline.\n */\nstatic int get_void(FILE *f)\n{\n\tint\tc;\n\n\twhile ((c = getc(f)) != EOF && c != '\\n')\n\t\t;\n\n\treturn (c != EOF);\n}\n\n/*\n *\tRead the next \"command\" from the state pipe.\n */\nstatic int get_cmd(FILE *f)\n{\n\tchar\tcmd[4] = \"   \";\n\tint\ti;\n\n\tif (fread(cmd, 1, sizeof(cmd) - 1, f) != sizeof(cmd) - 1)\n\t\treturn C_EOF;\n\n\tfor(i = 0; cmds[i].cmd && strcmp(cmds[i].name, cmd) != 0; i++)\n\t\t;\n\treturn cmds[i].cmd;\n}\n\n/*\n *\tRead a CHILD * from the state pipe.\n */\nstatic CHILD *get_record(FILE *f)\n{\n\tint\tcmd;\n\tchar\ts[32];\n\tint\ti;\n\tCHILD\t*p;\n\n\tdo {\n\t\terrno = 0;\n\t\tswitch (cmd = get_cmd(f)) {\n\t\t\tcase C_END:\n\t\t\t\tget_void(f);\n\t\t\t\treturn NULL;\n\t\t\tcase 0:\n\t\t\t\tget_void(f);\n\t\t\t\tbreak;\n\t\t\tcase C_REC:\n\t\t\t\tbreak;\n\t\t\tcase D_RUNLEVEL:\n\t\t\t\tif (fscanf(f, \"%c\\n\", &runlevel) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_THISLEVEL:\n\t\t\t\tif (fscanf(f, \"%c\\n\", &thislevel) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_PREVLEVEL:\n\t\t\t\tif (fscanf(f, \"%c\\n\", &prevlevel) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_GOTSIGN:\n\t\t\t\tif (fscanf(f, \"%u\\n\", &got_signals) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_WROTE_WTMP_REBOOT:\n\t\t\t\tif (fscanf(f, \"%d\\n\", &wrote_wtmp_reboot) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_WROTE_UTMP_REBOOT:\n\t\t\t\tif (fscanf(f, \"%d\\n\", &wrote_utmp_reboot) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_SLTIME:\n\t\t\t\tif (fscanf(f, \"%d\\n\", &sleep_time) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_DIDBOOT:\n\t\t\t\tif (fscanf(f, \"%d\\n\", &did_boot) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_WROTE_WTMP_RLEVEL:\n\t\t\t\tif (fscanf(f, \"%d\\n\", &wrote_wtmp_rlevel) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase D_WROTE_UTMP_RLEVEL:\n\t\t\t\tif (fscanf(f, \"%d\\n\", &wrote_utmp_rlevel) == EOF && errno != 0) {\n\t\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (cmd > 0 || cmd == C_EOF) {\n\t\t\t\t\toops_error = -1;\n\t\t\t\t\treturn NULL;\n\t\t\t\t}\n\t\t}\n\t} while (cmd != C_REC);\n\n\tp = imalloc(sizeof(CHILD));\n\tget_string(p->id, sizeof(p->id), f);\n\n\tdo switch(cmd = get_cmd(f)) {\n\t\tcase 0:\n\t\tcase C_EOR:\n\t\t\tget_void(f);\n\t\t\tbreak;\n\t\tcase C_PID:\n\t\t\tif (fscanf(f, \"%d\\n\", &(p->pid)) == EOF && errno != 0) {\n\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t}\n\t\t\tbreak;\n\t\tcase C_EXS:\n\t\t\tif (fscanf(f, \"%u\\n\", &(p->exstat)) == EOF && errno != 0) {\n\t\t\t\tfprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n\t\t\t}\n\t\t\tbreak;\n\t\tcase C_LEV:\n\t\t\tget_string(p->rlevel, sizeof(p->rlevel), f);\n\t\t\tbreak;\n\t\tcase C_PROCESS:\n\t\t\tget_string(p->process, sizeof(p->process), f);\n\t\t\tbreak;\n\t\tcase C_FLAG:\n\t\t\tget_string(s, sizeof(s), f);\n\t\t\tfor(i = 0; flags[i].name; i++) {\n\t\t\t\tif (strcmp(flags[i].name,s) == 0)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tp->flags |= flags[i].mask;\n\t\t\tbreak;\n\t\tcase C_ACTION:\n\t\t\tget_string(s, sizeof(s), f);\n\t\t\tfor(i = 0; actions[i].name; i++) {\n\t\t\t\tif (strcmp(actions[i].name, s) == 0)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tp->action = actions[i].act ? actions[i].act : OFF;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tfree(p);\n\t\t\toops_error = -1;\n\t\t\treturn NULL;\n\t} while( cmd != C_EOR);\n\n\treturn p;\n}\n\n/*\n *\tRead the complete state info from the state pipe.\n *\tReturns 0 on success\n */\nstatic\nint receive_state(int fd)\n{\n\tFILE\t*f;\n\tchar\told_version[256];\n\tCHILD\t**pp;\n\n\tf = fdopen(fd, \"r\");\n\n \tif (get_cmd(f) != C_VER) {\n\t\tfclose(f);\n\t\treturn -1;\n\t}\n\tget_string(old_version, sizeof(old_version), f);\n\toops_error = 0;\n\tfor (pp = &family; (*pp = get_record(f)) != NULL; pp = &((*pp)->next))\n\t\t;\n\tfclose(f);\n\treturn oops_error;\n}\n\n/*\n *\tSet the process title.\n */\n#ifdef __GNUC__\n#ifndef __FreeBSD__\n__attribute__ ((format (printf, 1, 2)))\n#endif\n#endif\n/* This function already exists on FreeBSD. No need to declare it. */\n#ifndef __FreeBSD__\nstatic int setproctitle(char *fmt, ...)\n{\n\tva_list ap;\n\tint len;\n\tchar buf[256];\n\n\tbuf[0] = 0;\n\n\tva_start(ap, fmt);\n\tlen = vsnprintf(buf, sizeof(buf), fmt, ap);\n\tva_end(ap);\n\n\tif (maxproclen > 1) {\n\t\tmemset(argv0, 0, maxproclen);\n\t\tstrncpy(argv0, buf, maxproclen - 1);\n\t}\n\n\treturn len;\n}\n#endif\n\n/*\n *\tSet console_dev to a working console.\n */\nstatic\nvoid console_init(void)\n{\n\tint fd;\n\tint tried_devcons = 0;\n\tint tried_vtmaster = 0;\n\tchar *s;\n\n\tif ((s = getenv(\"CONSOLE\")) != NULL)\n\t\tconsole_dev = s;\n\telse {\n\t\tconsole_dev = CONSOLE;\n\t\ttried_devcons++;\n\t}\n\n\twhile ((fd = open(console_dev, O_RDONLY|O_NONBLOCK)) < 0) {\n\t\tif (!tried_devcons) {\n\t\t\ttried_devcons++;\n\t\t\tconsole_dev = CONSOLE;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!tried_vtmaster) {\n\t\t\ttried_vtmaster++;\n\t\t\tconsole_dev = VT_MASTER;\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\tif (fd < 0)\n\t\tconsole_dev = \"/dev/null\";\n\telse\n\t\tclose(fd);\n}\n\n\n/*\n *\tOpen the console with retries.\n */\nstatic\nint console_open(int mode)\n{\n\tint f, fd = -1;\n\tint m;\n\n\t/*\n\t *\tOpen device in nonblocking mode.\n\t */\n\tm = mode | O_NONBLOCK;\n\n\t/*\n\t *\tRetry the open five times.\n\t */\n\tfor(f = 0; f < 5; f++) {\n\t\tif ((fd = open(console_dev, m)) >= 0) break;\n\t\tusleep(10000);\n\t}\n\n\tif (fd < 0) return fd;\n\n\t/*\n\t *\tSet original flags.\n\t */\n\tif (m != mode)\n  \t\tfcntl(fd, F_SETFL, mode);\n\treturn fd;\n}\n\n/*\n *\tWe got a signal (HUP PWR WINCH ALRM INT)\n */\nstatic\nvoid signal_handler(int sig)\n{\n\tADDSET(got_signals, sig);\n}\n\n/*\n *\tSIGCHLD: one of our children has died.\n */\nstatic\n# ifdef __GNUC__\nvoid chld_handler(int sig __attribute__((unused)))\n# else\nvoid chld_handler(int sig)\n# endif\n{\n\tCHILD\t\t*ch;\n\tint\t\tpid, st;\n\tint\t\tsaved_errno = errno;\n\n\t/*\n\t *\tFind out which process(es) this was (were)\n\t */\n\twhile((pid = waitpid(-1, &st, WNOHANG)) != 0) {\n\t\tif (errno == ECHILD) break;\n\t\tfor( ch = family; ch; ch = ch->next )\n\t\t\tif ( ch->pid == pid && (ch->flags & RUNNING) ) {\n\t\t\t\tINITDBG(L_VB,\n\t\t\t\t\t\"chld_handler: marked %d as zombie\",\n\t\t\t\t\tch->pid);\n\t\t\t\tADDSET(got_signals, SIGCHLD);\n\t\t\t\tch->exstat = st;\n\t\t\t\tch->flags |= ZOMBIE;\n\t\t\t\tif (ch->new) {\n\t\t\t\t\tch->new->exstat = st;\n\t\t\t\t\tch->new->flags |= ZOMBIE;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\tif (ch == NULL) {\n\t\t\tINITDBG(L_VB, \"chld_handler: unknown child %d exited.\",\n\t\t\t\tpid);\n\t\t}\n\t}\n\terrno = saved_errno;\n}\n\n/*\n *\tLinux ignores all signals sent to init when the\n *\tSIG_DFL handler is installed. Therefore we must catch SIGTSTP\n *\tand SIGCONT, or else they won't work....\n *\n *\tThe SIGCONT handler\n */\nstatic\n# ifdef __GNUC__\nvoid cont_handler(int sig __attribute__((unused)))\n# else\nvoid cont_handler(int sig)\n# endif\n{\n\tgot_cont = 1;\n}\n\n/*\n *\tFork and dump core in /.\n */\nstatic\nvoid coredump(void)\n{\n\tstatic int\t\tdumped = 0;\n\tstruct rlimit\t\trlim;\n\tsigset_t\t\tmask;\n\n\tif (dumped) return;\n\tdumped = 1;\n\n\tif (fork() != 0) return;\n\n\tsigfillset(&mask);\n\tsigprocmask(SIG_SETMASK, &mask, NULL);\n\n\trlim.rlim_cur = RLIM_INFINITY;\n\trlim.rlim_max = RLIM_INFINITY;\n\tsetrlimit(RLIMIT_CORE, &rlim);\n\tif (0 != chdir(\"/\"))\n\t\tinitlog(L_VB, \"unable to chdir to /: %s\",\n\t\t\tstrerror(errno));\n\n\tsignal(SIGSEGV, SIG_DFL);\n\traise(SIGSEGV);\n\tsigdelset(&mask, SIGSEGV);\n\tsigprocmask(SIG_SETMASK, &mask, NULL);\n\n\tdo_msleep(SHORT_SLEEP);\n\texit(0);\n}\n\n/*\n *\tOOPS: segmentation violation!\n *\tIf we have the info, print where it occurred.\n *\tThen sleep 30 seconds and try to continue.\n */\nstatic\n#if defined(STACK_DEBUG) && defined(__linux__)\n# ifdef __GNUC__\nvoid segv_handler(int sig __attribute__((unused)), struct sigcontext ctx)\n# else\nvoid segv_handler(int sig, struct sigcontext ctx)\n# endif\n{\n\tchar\t*p = \"\";\n\tint\tsaved_errno = errno;\n\n\tif ((void *)ctx.eip >= (void *)do_msleep &&\n\t    (void *)ctx.eip < (void *)main)\n\t\tp = \" (code)\";\n\tinitlog(L_VB, \"PANIC: segmentation violation at %p%s! \"\n\t\t  \"sleeping for 30 seconds.\", (void *)ctx.eip, p);\n\tcoredump();\n\tdo_msleep(LONG_SLEEP);\n\terrno = saved_errno;\n}\n#else\n# ifdef __GNUC__\nvoid segv_handler(int sig __attribute__((unused)))\n# else\nvoid segv_handler(int sig)\n# endif\n{\n\tint\tsaved_errno = errno;\n\n\tinitlog(L_VB,\n\t\t\"PANIC: segmentation violation! sleeping for 30 seconds.\");\n\tcoredump();\n\tdo_msleep(LONG_SLEEP);\n\terrno = saved_errno;\n}\n#endif\n\n/*\n *\tThe SIGSTOP & SIGTSTP handler\n */\nstatic\n# ifdef __GNUC__\nvoid stop_handler(int sig __attribute__((unused)))\n# else\nvoid stop_handler(int sig)\n# endif\n{\n\tint\tsaved_errno = errno;\n\n\tgot_cont = 0;\n\twhile(!got_cont) pause();\n\tgot_cont = 0;\n\terrno = saved_errno;\n}\n\n/*\n *\tSet terminal settings to reasonable defaults\n */\nstatic\nvoid console_stty(void)\n{\n\tstruct termios tty;\n\tint fd;\n\n\tif ((fd = console_open(O_RDWR|O_NOCTTY)) < 0) {\n\t\tinitlog(L_VB, \"can't open %s\", console_dev);\n\t\treturn;\n\t}\n\n#ifdef __FreeBSD_kernel__\n\t/*\n\t * The kernel of FreeBSD expects userland to set TERM.  Usually, we want\n\t * \"xterm\".  Later, gettys might disagree on this (i.e. we're not using\n\t * syscons) but some boot scripts, like /etc/init.d/xserver-xorg, still\n\t * need a non-dumb terminal.\n\t */\n\tputenv (\"TERM=xterm\");\n#endif\n\n\t(void) tcgetattr(fd, &tty);\n\n\ttty.c_cflag &= CBAUD|CBAUDEX|CSIZE|CSTOPB|PARENB|PARODD;\n\ttty.c_cflag |= HUPCL|CLOCAL|CREAD;\n\n\ttty.c_cc[VINTR]\t    = CINTR;\n\ttty.c_cc[VQUIT]\t    = CQUIT;\n\ttty.c_cc[VERASE]    = CERASE; /* ASCII DEL (0177) */\n\ttty.c_cc[VKILL]\t    = CKILL;\n\ttty.c_cc[VEOF]\t    = CEOF;\n\ttty.c_cc[VTIME]\t    = 0;\n\ttty.c_cc[VMIN]\t    = 1;\n#ifdef VSWTC /* not defined on FreeBSD */\n\ttty.c_cc[VSWTC]\t    = _POSIX_VDISABLE;\n#endif /* VSWTC */\n\ttty.c_cc[VSTART]    = CSTART;\n\ttty.c_cc[VSTOP]\t    = CSTOP;\n\ttty.c_cc[VSUSP]\t    = CSUSP;\n\ttty.c_cc[VEOL]\t    = _POSIX_VDISABLE;\n\ttty.c_cc[VREPRINT]  = CREPRINT;\n\ttty.c_cc[VDISCARD]  = CDISCARD;\n\ttty.c_cc[VWERASE]   = CWERASE;\n\ttty.c_cc[VLNEXT]    = CLNEXT;\n\ttty.c_cc[VEOL2]\t    = _POSIX_VDISABLE;\n\n\t/*\n\t *\tSet pre and post processing\n\t */\n\ttty.c_iflag = IGNPAR|ICRNL|IXON|IXANY\n#ifdef IUTF8\t/* Not defined on FreeBSD */\n\t\t\t| (tty.c_iflag & IUTF8)\n#endif /* IUTF8 */\n\t\t;\n\ttty.c_oflag = OPOST|ONLCR;\n\ttty.c_lflag = ISIG|ICANON|ECHO|ECHOCTL|ECHOE|ECHOKE;\n\n#if defined(SANE_TIO) && (SANE_TIO == 1)\n\t/*\n\t *\tDisable flow control (-ixon), ignore break (ignbrk),\n\t *\tand make nl/cr more usable (sane).\n\t */\n\ttty.c_iflag |=  IGNBRK;\n\ttty.c_iflag &= ~(BRKINT|INLCR|IGNCR|IXON);\n\ttty.c_oflag &= ~(OCRNL|ONLRET);\n#endif\n\t/*\n\t *\tNow set the terminal line.\n\t *\tWe don't care about non-transmitted output data\n\t *\tand non-read input data.\n\t */\n\t(void) tcsetattr(fd, TCSANOW, &tty);\n\t(void) tcflush(fd, TCIOFLUSH);\n\t(void) close(fd);\n}\n\nstatic  ssize_t\nsafe_write(int fd, const char *buffer, size_t count)\n{\n\tssize_t offset = 0;\n\n\twhile (count > 0) {\n\t\tssize_t block = write(fd, &buffer[offset], count);\n\n\t\tif (block < 0 && errno == EINTR)\n\t\t\tcontinue;\n\t\tif (block <= 0)\n\t\t\treturn offset ? offset : block;\n\t\toffset += block;\n\t\tcount -= block;\n\t}\n\treturn offset;\n}\n\n/*\n *\tPrint to the system console\n */\nvoid print(char *s)\n{\n\tint fd;\n\n\tif ((fd = console_open(O_WRONLY|O_NOCTTY|O_NDELAY)) >= 0) {\n\t\tsafe_write(fd, s, strlen(s));\n\t\tclose(fd);\n\t}\n}\n\n/*\n *\tLog something to a logfile and the console.\n */\n#ifdef __GNUC__\n__attribute__ ((format (printf, 2, 3)))\n#endif\nvoid initlog(int loglevel, char *s, ...)\n{\n\tva_list va_alist;\n\tchar buf[256];\n\tsigset_t nmask, omask;\n\n\tva_start(va_alist, s);\n\tvsnprintf(buf, sizeof(buf), s, va_alist);\n\tva_end(va_alist);\n\n\tif (loglevel & L_SY) {\n\t\t/*\n\t\t *\tRe-establish connection with syslogd every time.\n\t\t *\tBlock signals while talking to syslog.\n\t\t */\n\t\tsigfillset(&nmask);\n\t\tsigprocmask(SIG_BLOCK, &nmask, &omask);\n\t\topenlog(\"init\", 0, LOG_DAEMON);\n\t\tsyslog(LOG_INFO, \"%s\", buf);\n\t\tcloselog();\n\t\tsigprocmask(SIG_SETMASK, &omask, NULL);\n\t}\n\n\t/*\n\t *\tAnd log to the console.\n\t */\n\tif (loglevel & L_CO) {\n\t\tprint(\"\\rINIT: \");\n\t\tprint(buf);\n\t\tprint(\"\\r\\n\");\n\t}\n}\n\n/*\n *\tAdd or replace specific environment value\n */\nint addnewenv(const char *new, char **curr, int n)\n{\n\tsize_t nlen = strcspn(new, \"=\");\n\tint i;\n\tfor (i = 0; i < n; i++) {\n\t\tif (nlen != strcspn(curr[i], \"=\"))\n\t\t\tcontinue;\n\t\tif (strncmp (new, curr[i], nlen) == 0)\n\t\t\tbreak;\n\t}\n\tif (i >= n)\n\t\tcurr[n++] = istrdup(new);\n\telse {\n\t\tfree(curr[i]);\n\t\tcurr[i] = istrdup(new);\n\t}\n\treturn n;\n}\n\n/*\n *\tBuild a new environment for execve().\n */\nchar **init_buildenv(int child)\n{\n\tchar\t\ti_lvl[] = \"RUNLEVEL=x\";\n\tchar\t\ti_prev[] = \"PREVLEVEL=x\";\n\tchar\t\ti_cons[128];\n\tchar\t\ti_shell[] = \"SHELL=\" SHELL;\n\tchar\t\t**e;\n\tint\t\tn, i;\n\n\tfor (n = 0; environ[n]; n++)\n\t\t;\n\tn += NR_EXTRA_ENV + 1;\t    /* Also room for last NULL */\n\tif (child)\n\t\tn += 8;\n\n\twhile ((e = (char**)calloc(n, sizeof(char *))) == NULL) {\n\t\tinitlog(L_VB, \"out of memory\");\n\t\tdo_msleep(SHORT_SLEEP);\n\t}\n\n\tfor (n = 0; environ[n]; n++)\n\t\te[n] = istrdup(environ[n]);\n\n\tfor (i = 0; i < NR_EXTRA_ENV; i++) {\n\t\tif (extra_env[i] == NULL || *extra_env[i] == '\\0')\n\t\t\tcontinue;\n\t\tn = addnewenv(extra_env[i], e, n);\n\t}\n\n\tif (child) {\n\t\tsnprintf(i_cons, sizeof(i_cons), \"CONSOLE=%s\", console_dev);\n\t\ti_lvl[9]   = thislevel;\n\t\ti_prev[10] = prevlevel;\n\t\tn = addnewenv(i_shell, e, n);\n\t\tn = addnewenv(i_lvl, e, n);\n\t\tn = addnewenv(i_prev, e, n);\n\t\tn = addnewenv(i_cons, e, n);\n\t\tn = addnewenv(E_VERSION, e, n);\n\t}\n\n\te[n++] = NULL;\n\n\treturn e;\n}\n\n\nvoid init_freeenv(char **e)\n{\n\tint\t\tn;\n\n\tfor (n = 0; e[n]; n++)\n\t\tfree(e[n]);\n\tfree(e);\n}\n\n\n/*\n *\tFork and execute.\n *\n *\tThis function is too long and indents too deep.\n *\n */\nstatic\npid_t spawn(CHILD *ch, int *res)\n{\n  char *args[16];\t\t/* Argv array */\n  char buf[PROCESS_LENGTH * 2];\t/* Line buffer */\n  int f, st;\t\t\t/* Scratch variables */\n  char *ptr;\t\t\t/* Ditto */\n  time_t t;\t\t\t/* System time */\n  int oldAlarm;\t\t\t/* Previous alarm value */\n  char *proc = ch->process;\t/* Command line */\n  pid_t pid, pgrp;\t\t/* child, console process group. */\n  sigset_t nmask, omask;\t/* For blocking SIGCHLD */\n  struct sigaction sa;\n\n  *res = -1;\n  buf[sizeof(buf) - 1] = '\\0';\n\n  /* Skip '+' if it's there */\n  if (proc[0] == '+') proc++;\n\n  ch->flags |= XECUTED;\n\n  if (ch->action == RESPAWN || ch->action == ONDEMAND) {\n\t/* Is the date stamp from less than 2 minutes ago? */\n\ttime(&t);\n\tif (ch->tm + TESTTIME > t) {\n\t\tch->count++;\n\t} else {\n\t\tch->count = 0;\n\t\tch->tm = t;\n\t}\n\n\t/* Do we try to respawn too fast? */\n\tif (ch->count >= MAXSPAWN) {\n\n\t  initlog(L_VB,\n\t\t\"Id \\\"%s\\\" respawning too fast: disabled for %d minutes\",\n\t\tch->id, SLEEPTIME / 60);\n\t  ch->flags &= ~RUNNING;\n\t  ch->flags |= FAILING;\n\n\t  /* Remember the time we stopped */\n\t  ch->tm = t;\n\n\t  /* Try again in 5 minutes */\n\t  oldAlarm = alarm(0);\n\t  if (oldAlarm > SLEEPTIME || oldAlarm <= 0) oldAlarm = SLEEPTIME;\n\t  alarm(oldAlarm);\n\t  return(-1);\n\t}\n  }\n\n  /* See if there is an \"initscript\" (except in single user mode). */\n  if (access(INITSCRIPT, R_OK) == 0 && runlevel != 'S') {\n\t/* Build command line using \"initscript\" */\n\targs[1] = SHELL;\n\targs[2] = INITSCRIPT;\n\targs[3] = ch->id;\n\targs[4] = ch->rlevel;\n\targs[5] = \"unknown\";\n\tfor(f = 0; actions[f].name; f++) {\n\t\tif (ch->action == actions[f].act) {\n\t\t\targs[5] = actions[f].name;\n\t\t\tbreak;\n\t\t}\n\t}\n        if (proc[0] == '@') proc++;    /*skip leading backslash */\n\targs[6] = proc;\n\targs[7] = NULL;\n  } else if ( (strpbrk(proc, \"~`!$^&*()=|\\\\{}[];\\\"'<>?\")) && (proc[0] != '@') ){\n  /* See if we need to fire off a shell for this command */\n  /* Do not launch shell if first character in proc string is an at symbol  */\n  \t/* Give command line to shell */\n  \targs[1] = SHELL;\n  \targs[2] = \"-c\";\n  \t/* \n        strcpy(buf, \"exec \");\n  \tstrncat(buf, proc, sizeof(buf) - strlen(buf) - 1);\n        */\n        strncpy(buf, proc, sizeof(buf) - strlen(buf) - 1);\n  \targs[3] = buf;\n  \targs[4] = NULL;\n  } else {\n\t/* Split up command line arguments */\n\tbuf[0] = 0;\n        if (proc[0] == '@') proc++;\n  \tstrncat(buf, proc, sizeof(buf) - 1);\n  \tptr = buf;\n  \tfor(f = 1; f < 15; f++) {\n  \t\t/* Skip white space */\n  \t\twhile(*ptr == ' ' || *ptr == '\\t') ptr++;\n  \t\targs[f] = ptr;\n  \t\t\n\t\t/* May be trailing space.. */\n\t\tif (*ptr == 0) break;\n\n  \t\t/* Skip this `word' */\n  \t\twhile(*ptr && *ptr != ' ' && *ptr != '\\t' && *ptr != '#')\n  \t\t\tptr++;\n  \t\t\n  \t\t/* If end-of-line, break */\t\n  \t\tif (*ptr == '#' || *ptr == 0) {\n  \t\t\tf++;\n  \t\t\t*ptr = 0;\n  \t\t\tbreak;\n  \t\t}\n  \t\t/* End word with \\0 and continue */\n  \t\t*ptr++ = 0;\n  \t}\n  \targs[f] = NULL;\n  }\n  args[0] = args[1];\n  while(1) {\n\t/*\n\t *\tBlock sigchild while forking.\n\t */\n\tsigemptyset(&nmask);\n\tsigaddset(&nmask, SIGCHLD);\n\tsigprocmask(SIG_BLOCK, &nmask, &omask);\n\n\tif ((pid = fork()) == 0) {\n\n\t\tclose(0);\n\t\tclose(1);\n\t\tclose(2);\n\t\tif (pipe_fd >= 0)\n                {\n                    close(pipe_fd);\n                    pipe_fd = -1;\n                }\n\n  \t\tsigprocmask(SIG_SETMASK, &omask, NULL);\n\n\t\t/*\n\t\t *\tIn sysinit, boot, bootwait or single user mode:\n\t\t *\tfor any wait-type subprocess we _force_ the console\n\t\t *\tto be its controlling tty.\n\t\t */\n  \t\tif (strchr(\"*#sS\", runlevel) && ch->flags & WAITING) {\n\t\t\tint ftty;\t/* Handler for tty controlling */\n\t\t\t/*\n\t\t\t *\tWe fork once extra. This is so that we can\n\t\t\t *\twait and change the process group and session\n\t\t\t *\tof the console after exit of the leader.\n\t\t\t */\n\t\t\tsetsid();\n\t\t\tif ((ftty = console_open(O_RDWR|O_NOCTTY)) >= 0) {\n\t\t\t\t/* Take over controlling tty by force */\n\t\t\t\t(void)ioctl(ftty, TIOCSCTTY, 1);\n\n\t\t\t\tif(dup(ftty) < 0){\n\t\t\t\t        initlog(L_VB, \"cannot duplicate console fd\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(dup(ftty) < 0){\n\t\t\t\t        initlog(L_VB, \"cannot duplicate console fd\");\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * 4 Sep 2001, Andrea Arcangeli:\n\t\t\t * Fix a race in spawn() that is used to deadlock init in a\n\t\t\t * waitpid() loop: must set the childhandler as default before forking\n\t\t\t * off the child or the chld_handler could run before the waitpid loop\n\t\t\t * has a chance to find its zombie-child.\n\t\t\t */\n\t\t\tSETSIG(sa, SIGCHLD, SIG_DFL, SA_RESTART);\n\t\t\tif ((pid = fork()) < 0) {\n  \t\t\t\tinitlog(L_VB, \"cannot fork: %s\",\n\t\t\t\t\tstrerror(errno));\n\t\t\t\texit(1);\n\t\t\t}\n\t\t\tif (pid > 0) {\n\t\t\t\tpid_t rc;\n\t\t\t\t/*\n\t\t\t\t *\tIgnore keyboard signals etc.\n\t\t\t\t *\tThen wait for child to exit.\n\t\t\t\t */\n\t\t\t\tSETSIG(sa, SIGINT, SIG_IGN, SA_RESTART);\n\t\t\t\tSETSIG(sa, SIGTSTP, SIG_IGN, SA_RESTART);\n\t\t\t\tSETSIG(sa, SIGQUIT, SIG_IGN, SA_RESTART);\n\n\t\t\t\twhile ((rc = waitpid(pid, &st, 0)) != pid)\n\t\t\t\t\tif (rc < 0 && errno == ECHILD)\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t/*\n\t\t\t\t *\tSmall optimization. See if stealing\n\t\t\t\t *\tcontrolling tty back is needed.\n\t\t\t\t */\n\t\t\t\tpgrp = tcgetpgrp(ftty);\n\t\t\t\tif (pgrp != getpid())\n\t\t\t\t\texit(0);\n\n\t\t\t\t/*\n\t\t\t\t *\tSteal controlling tty away. We do\n\t\t\t\t *\tthis with a temporary process.\n\t\t\t\t */\n\t\t\t\tif ((pid = fork()) < 0) {\n  \t\t\t\t\tinitlog(L_VB, \"cannot fork: %s\",\n\t\t\t\t\t\tstrerror(errno));\n\t\t\t\t\texit(1);\n\t\t\t\t}\n\t\t\t\tif (pid == 0) {\n\t\t\t\t\tsetsid();\n\t\t\t\t\t(void)ioctl(ftty, TIOCSCTTY, 1);\n\t\t\t\t\texit(0);\n\t\t\t\t}\n\t\t\t\twhile((rc = waitpid(pid, &st, 0)) != pid)\n\t\t\t\t\tif (rc < 0 && errno == ECHILD)\n\t\t\t\t\t\tbreak;\n\t\t\t\texit(0);\n\t\t\t}\n\n\t\t\t/* Set ioctl settings to default ones */\n\t\t\tconsole_stty();\n\n  \t\t} else { /* parent */\n\t\t\tint fd;\n\t\t\tsetsid();\n\t\t\tif ((fd = console_open(O_RDWR|O_NOCTTY)) < 0) {\n\t\t\t\tinitlog(L_VB, \"open(%s): %s\", console_dev,\n\t\t\t\t\tstrerror(errno));\n\t\t\t\tfd = open(\"/dev/null\", O_RDWR);\n\t\t\t}\n\n\t\t\tif(dup(fd) < 0) {\n\t\t\t\tinitlog(L_VB, \"cannot duplicate /dev/null fd\");\n\t\t\t}\n\t\t\t\n\t\t\tif(dup(fd) < 0) {\n\t\t\t\tinitlog(L_VB, \"cannot duplicate /dev/null fd\");\n\t\t\t}\n\n\t\t}\n\n\t\t/*\n\t\t * Update utmp/wtmp file prior to starting\n\t\t * any child.  This MUST be done right here in\n\t\t * the child process in order to prevent a race\n\t\t * condition that occurs when the child\n\t\t * process' time slice executes before the\n\t\t * parent (can and does happen in a uniprocessor\n\t\t * environment).  If the child is a getty and\n\t\t * the race condition happens, then init's utmp\n\t\t * update will happen AFTER the getty runs\n\t\t * and expects utmp to be updated already!\n\t\t *\n\t\t * Do NOT log if process field starts with '+'\n\t\t * This is for compatibility with *very*\n\t\t * old getties - probably it can be taken out.\n\t\t */\n\t\tif (ch->process[0] != '+')\n\t\t\twrite_utmp_wtmp(\"\", ch->id, getpid(), INIT_PROCESS, \"\");\n\n  \t\t/* Reset all the signals, set up environment */\n  \t\tfor(f = 1; f < NSIG; f++) SETSIG(sa, f, SIG_DFL, SA_RESTART);\n\t\tenviron = init_buildenv(1);\n\n\t\t/*\n\t\t *\tExecute prog. In case of ENOEXEC try again\n\t\t *\tas a shell script.\n\t\t */\n  \t\texecvp(args[1], args + 1);\n\t\tif (errno == ENOEXEC) {\n  \t\t\targs[1] = SHELL;\n  \t\t\targs[2] = \"-c\";\n  \t\t\tstrcpy(buf, \"exec \");\n  \t\t\tstrncat(buf, proc, sizeof(buf) - strlen(buf) - 1);\n  \t\t\targs[3] = buf;\n  \t\t\targs[4] = NULL;\n\t\t\texecvp(args[1], args + 1);\n\t\t}\n  \t\tinitlog(L_VB, \"cannot execute \\\"%s\\\"\", args[1]);\n\n\t\tif (ch->process[0] != '+')\n\t\t\twrite_utmp_wtmp(\"\", ch->id, getpid(), DEAD_PROCESS, NULL);\n  \t\texit(1);\n  \t}\n\t*res = pid;\n  \tsigprocmask(SIG_SETMASK, &omask, NULL);\n\n\tINITDBG(L_VB, \"Started id %s (pid %d)\", ch->id, pid);\n\n\tif (pid == -1) {\n\t\tinitlog(L_VB, \"cannot fork, retry..\");\n\tdo_msleep(SHORT_SLEEP);\n\t\tcontinue;\n\t}\n\treturn(pid);\n  }\n}\n\n/*\n *\tStart a child running!\n */\nstatic\nvoid startup(CHILD *ch)\n{\n\t/*\n\t *\tSee if it's disabled\n\t */\n\tif (ch->flags & FAILING) return;\n\n\tswitch(ch->action) {\n\n\t\tcase SYSINIT:\n\t\tcase BOOTWAIT:\n\t\tcase WAIT:\n\t\tcase POWERWAIT:\n\t\tcase POWERFAILNOW:\n\t\tcase POWEROKWAIT:\n\t\tcase CTRLALTDEL:\n\t\t\tif (!(ch->flags & XECUTED)) ch->flags |= WAITING;\n\t\t\t/* Fall through */\n\t\tcase KBREQUEST:\n\t\tcase BOOT:\n\t\tcase POWERFAIL:\n\t\tcase ONCE:\n\t\t\tif (ch->flags & XECUTED) break;\n                        /* Fall through */\n\t\tcase ONDEMAND:\n\t\tcase RESPAWN:\n  \t\t\tch->flags |= RUNNING;\n  \t\t\t(void)spawn(ch, &(ch->pid));\n  \t\t\tbreak;\n\t}\n}\n\n#ifdef __linux__\nstatic\nvoid check_kernel_console()\n{\n\tFILE* fp;\n\tchar buf[4096];\n\tif ((fp = fopen(\"/proc/cmdline\", \"r\")) == 0) {    \n\t\treturn;\n\t}    \n\tif (fgets(buf, sizeof(buf), fp)) {    \n\t\tchar* p = buf;\n           if ( strstr(p, \"init.autocon=1\") )\n           {\n                size_t console_length = strlen(\"console=\");\n\t\twhile ((p = strstr(p, \"console=\"))) {    \n\t\t\tchar* e;\n\t\t\tp += console_length;\n\t\t\tfor (e = p; *e; ++e) {\n\t\t\t\tswitch (*e) {\n\t\t\t\t\tcase '-' ... '9':\n\t\t\t\t\tcase 'A' ... 'Z':\n\t\t\t\t\tcase '_':\n\t\t\t\t\tcase 'a' ... 'z':\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (p != e) {\n\t\t\t\tCHILD* old;\n\t\t\t\tint dup = 0;\n\t\t\t\tchar id[8] = {0};\n\t\t\t\tchar dev[32] = {0};\n\t\t\t\tstrncpy(dev, p, MIN(sizeof(dev), (unsigned)(e-p)));\n\t\t\t\tif (!strncmp(dev, \"tty\", 3))\n\t\t\t\t\tstrncpy(id, dev+3, sizeof(id));\n\t\t\t\telse\n\t\t\t\t\tstrncpy(id, dev, sizeof(id));\n\n\t\t\t\tfor(old = newFamily; old; old = old->next) {\n\t\t\t\t\tif (!strcmp(old->id, id)) {\n\t\t\t\t\t\tdup = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dup) {\n\t\t\t\t\tCHILD* ch = imalloc(sizeof(CHILD));\n\t\t\t\t\tch->action = RESPAWN;\n\t\t\t\t\tstrcpy(ch->id, id);\n\t\t\t\t\tstrcpy(ch->rlevel, \"2345\");\n\t\t\t\t\tsprintf(ch->process, \"/sbin/agetty -L -s 115200,38400,9600 %s vt102\", dev);\n\t\t\t\t\tch->next = NULL;\n\t\t\t\t\tfor(old = family; old; old = old->next) {\n\t\t\t\t\t\tif (strcmp(old->id, ch->id) == 0) {\n\t\t\t\t\t\t\told->new = ch;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t/* add to end */\n\t\t\t\t\tfor(old = newFamily; old; old = old->next) {\n\t\t\t\t\t\tif (!old->next) {\n\t\t\t\t\t\t\told->next = ch;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tinitlog(L_VB, \"added agetty on %s with id %s\", dev, id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n            } \n\t}    \n\tfclose(fp);\n\treturn;\n}\n#endif\n\n/*\n *\tRead the inittab file.\n */\nstatic\nvoid read_inittab(void)\n{\n  FILE\t\t*fp;\t\t\t/* The INITTAB file */\n  FILE\t\t*fp_tab;\t\t/* The INITTABD files */\n  char          *file_status;           /* Are we at the end of the file? */\n  CHILD\t\t*ch, *old, *i;\t\t/* Pointers to CHILD structure */\n  CHILD\t\t*head = NULL;\t\t/* Head of linked list */\n#ifdef INITLVL\n  struct stat\tst;\t\t\t/* To stat INITLVL */\n#endif\n  sigset_t\tnmask, omask;\t\t/* For blocking SIGCHLD. */\n  char\t\tbuf[256];\t\t/* Line buffer */\n  char\t\terr[64];\t\t/* Error message. */\n  char\t\t*id, *rlevel,\n\t\t*action, *process;\t/* Fields of a line */\n  char\t\t*p;\n  int\t\tlineNo = 0;\t\t/* Line number in INITTAB file */\n  int\t\tactionNo;\t\t/* Decoded action field */\n  int\t\tf;\t\t\t/* Counter */\n  int\t\tround;\t\t\t/* round 0 for SIGTERM, 1 for SIGKILL */\n  int\t\tfoundOne = 0;\t\t/* No killing no sleep */\n  int\t\ttalk;\t\t\t/* Talk to the user */\n  int\t\tdone = -1;\t\t/* Ready yet? , 2 level : -1 nothing done, 0 inittab done, 1 inittab and inittab.d done */\n  DIR \t\t*tabdir=NULL;\t\t/* the INITTAB.D dir */\n  struct dirent *file_entry;\t\t/* inittab.d entry */\n  char \t\tf_name[272];\t\t/* size d_name + strlen /etc/inittad.d/ */\n  int           skip_this_line = FALSE; /* Is there something wrong with this config file? */\n\n#if DEBUG\n  if (newFamily != NULL) {\n\tINITDBG(L_VB, \"PANIC newFamily != NULL\");\n\texit(1);\n  }\n  INITDBG(L_VB, \"Reading inittab\");\n#endif\n\n  /*\n   *\tOpen INITTAB and read line by line.\n   */\n  if ((fp = fopen(INITTAB, \"r\")) == NULL)\n\tinitlog(L_VB, \"No inittab file found\");\n\n  /*\n   *  Open INITTAB.D directory \n   */\n  if( (tabdir = opendir(INITTABD))==NULL)\n\t  initlog(L_VB, \"No inittab.d directory found\");\n\n  while(done != 1) {\n        skip_this_line = FALSE;\n\t/*\n\t *\tAdd single user shell entry at the end.\n\t */\n        memset(buf, '\\0', sizeof(buf));\n\tif (done == -1) {\n\t\tif (fp == NULL || fgets(buf, sizeof(buf), fp) == NULL) {\n\t\t\tdone = 0;\n\t\t\t/*\n\t\t\t *\tSee if we have a single user entry.\n\t\t\t */\n\t\t\tfor(old = newFamily; old; old = old->next)\n\t\t\t\tif (strpbrk(old->rlevel, \"S\"))  break;\n\t\t\tif (old == NULL)\n\t\t\t\tsnprintf(buf, sizeof(buf), \"~~:S:wait:%s\\n\", SULOGIN);\n\t\t\telse\n\t\t\t\tcontinue;\n\t\t}\n                /* We have read a line, clear the file to the\n                   end of the line if the buffer is full. */\n                else\n                {\n                   if ( (! strchr(buf, '\\n') ) ||\n                        ( strlen(buf) >= sizeof(buf) ) )\n                   {\n                        get_void(fp);\n                        skip_this_line = TRUE;\n                   }\n                }\n\t} /* end if( done == -1) */\n\telse if ( done == 0 ){\n\t\t/* parse /etc/inittab.d and read all .tab files */\n\t\tif(tabdir!=NULL){\n\t\t\tif( (file_entry = readdir(tabdir))!=NULL){\n\t\t\t\t/* ignore files not like *.tab */\n\t\t\t\tif (!strcmp(file_entry->d_name, \".\") || !strcmp(file_entry->d_name, \"..\"))\n\t\t\t\t\tcontinue;\n\t\t\t\tif (strlen(file_entry->d_name) < 5 || strcmp(file_entry->d_name + strlen(file_entry->d_name) - 4, \".tab\"))\n\t\t\t\t\tcontinue;\n\t\t\t\t/*\n\t\t\t\t * initialize filename\n\t\t\t\t */\n\t\t\t\tmemset(f_name,0,sizeof(char)*272);\n\t\t\t\tsnprintf(f_name,272,\"/etc/inittab.d/%s\",file_entry->d_name);\n\t\t\t\tinitlog(L_VB, \"Reading: %s\",f_name);\n\t\t\t\t/*\n\t\t\t\t * read file in inittab.d only one entry per file\n\t\t\t\t */\n\t\t\t\tif ((fp_tab = fopen(f_name, \"r\")) == NULL)\n\t\t\t\t\tcontinue;\n\t\t\t\t/* read the file while the line contain comment */\n                                memset(buf, '\\0', sizeof(buf));\n                                file_status = fgets(buf, sizeof(buf), fp_tab);\n\t\t\t\twhile( file_status != NULL) {\n                                        printf(\"Got line: %s\\n\", buf);\n\t\t\t\t\tfor(p = buf; *p == ' ' || *p == '\\t'; p++);\n\t\t\t\t\tif (*p != '#' && *p != '\\n')\n\t\t\t\t\t\tbreak;\n                                        /* If the buffer is full, make sure we move ahead\n                                           in the file to clear the line. */\n                                        if ( (! strchr(buf, '\\n') ) || \n                                             ( strlen(buf) >= sizeof(buf)) )\n                                        {\n                                            get_void(fp_tab);\n                                            skip_this_line = TRUE;\n                                        }\n                                        memset(buf, '\\0', sizeof(buf));\n                                        file_status = fgets(buf, sizeof(buf), fp_tab);\n\t\t\t\t}\n\t\t\t\tfclose(fp_tab);\n\t\t\t\t/* do some checks */\n\t\t\t\tif( strlen( p  ) == 0 )\n\t\t\t\t\tcontinue;\n\t\t\t} /* end of readdir, all is done */\n\t\t\telse { \n\t\t\t\tdone = 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t} /* end of if(tabdir!=NULL) */\n\t\telse {\n\t\t\tdone = 1;\n\t\t\tcontinue;\n\t\t}\n\t} /* end of if ( done == 0 ) */\n\tlineNo++;\n\t/*\n\t *\tSkip comments and empty lines\n\t */\n\tfor(p = buf; *p == ' ' || *p == '\\t'; p++)\n\t\t;\n\tif (*p == '#' || *p == '\\n') continue;\n\n        /* There was something wrong with this line, skip adding it to our rules. */\n        if (skip_this_line)\n        {\n\t   initlog(L_VB, \"Error detected in %s at line %d. Possibly too long.\", INITTAB, lineNo);\n           continue;\n        }\n\n\t/*\n\t *\tDecode the fields\n\t */\n\tid =      strsep(&p, \":\");\n\trlevel =  strsep(&p, \":\");\n\taction =  strsep(&p, \":\");\n\tprocess = strsep(&p, \"\\n\");\n\n\t/*\n\t *\tCheck if syntax is OK. Be very verbose here, to\n\t *\tavoid newbie postings on comp.os.linux.setup :)\n\t */\n\terr[0] = 0;\n\tif (!id || !*id) strcpy(err, \"missing id field\");\n\tif (!rlevel)     strcpy(err, \"missing runlevel field\");\n\tif (!process)    strcpy(err, \"missing process field\");\n\tif (!action || !*action)\n\t\t\tstrcpy(err, \"missing action field\");\n\tif (id && strlen(id) > sizeof(utproto.ut_id))\n\t\tsprintf(err, \"id field too long (max %d characters)\",\n\t\t\t(int)sizeof(utproto.ut_id));\n\tif (rlevel && strlen(rlevel) > (RUNLEVEL_LENGTH - 1))\n\t\tstrcpy(err, \"rlevel field too long (max 11 characters)\");\n\tif (process && strlen(process) > (PROCESS_LENGTH / 2))\n \t     snprintf(err, 63, \"process field too long (max %d characters)\", PROCESS_LENGTH / 2);\n\tif (action && strlen(action) > (ACTION_LENGTH - 1))\n\t\tstrcpy(err, \"action field too long\");\n\tif (err[0] != 0) {\n\t\tinitlog(L_VB, \"%s[%d]: %s\", INITTAB, lineNo, err);\n\t\tINITDBG(L_VB, \"%s:%s:%s:%s\", id, rlevel, action, process);\n\t\tcontinue;\n\t}\n  \n\t/*\n\t *\tDecode the \"action\" field\n\t */\n\tactionNo = -1;\n\tfor(f = 0; actions[f].name; f++)\n\t\tif (strcasecmp(action, actions[f].name) == 0) {\n\t\t\tactionNo = actions[f].act;\n\t\t\tbreak;\n\t\t}\n\tif (actionNo == -1) {\n\t\tinitlog(L_VB, \"%s[%d]: %s: unknown action field\",\n\t\t\tINITTAB, lineNo, action);\n\t\tcontinue;\n\t}\n\n\t/*\n\t *\tSee if the id field is unique\n\t */\n\tfor(old = newFamily; old; old = old->next) {\n\t\tif(strcmp(old->id, id) == 0 && strcmp(id, \"~~\")) {\n\t\t\tinitlog(L_VB, \"%s[%d]: duplicate ID field \\\"%s\\\"\",\n\t\t\t\tINITTAB, lineNo, id);\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (old) continue;\n\n\t/*\n\t *\tAllocate a CHILD structure\n\t */\n\tch = imalloc(sizeof(CHILD));\n\n\t/*\n\t *\tAnd fill it in.\n\t */\n\tch->action = actionNo;\n\tstrncpy(ch->id, id, sizeof(utproto.ut_id) + 1); /* Hack for different libs. */\n\tstrncpy(ch->process, process, PROCESS_LENGTH - 2);\n\tif (rlevel[0]) {\n\t\tfor(f = 0; f < (int)sizeof(rlevel) - 1 && rlevel[f]; f++) {\n\t\t\tch->rlevel[f] = rlevel[f];\n\t\t\tif (ch->rlevel[f] == 's') ch->rlevel[f] = 'S';\n\t\t}\n\t\tstrncpy(ch->rlevel, rlevel, sizeof(ch->rlevel) - 1);\n\t} else {\n\t\tstrcpy(ch->rlevel, \"0123456789\");\n\t\tif (ISPOWER(ch->action))\n\t\t\tstrcpy(ch->rlevel, \"S0123456789\");\n\t}\n\t/*\n\t *\tWe have the fake runlevel '#' for SYSINIT  and\n\t *\t'*' for BOOT and BOOTWAIT.\n\t */\n\tif (ch->action == SYSINIT) strcpy(ch->rlevel, \"#\");\n\tif (ch->action == BOOT || ch->action == BOOTWAIT)\n\t\tstrcpy(ch->rlevel, \"*\");\n\n\t/*\n\t *\tNow add it to the linked list. Special for powerfail.\n\t */\n\tif (ISPOWER(ch->action)) {\n\n\t\t/*\n\t\t *\tDisable by default\n\t\t */\n\t\tch->flags |= XECUTED;\n\n\t\t/*\n\t\t *\tTricky: insert at the front of the list..\n\t\t */\n\t\told = NULL;\n\t\tfor(i = newFamily; i; i = i->next) {\n\t\t\tif (!ISPOWER(i->action)) break;\n\t\t\told = i;\n\t\t}\n\t\t/*\n\t\t *\tNow add after entry \"old\"\n\t\t */\n\t\tif (old) {\n\t\t\tch->next = i;\n\t\t\told->next = ch;\n\t\t\tif (i == NULL) head = ch;\n\t\t} else {\n\t\t\tch->next = newFamily;\n\t\t\tnewFamily = ch;\n\t\t\tif (ch->next == NULL) head = ch;\n\t\t}\n\t} else {\n\t\t/*\n\t\t *\tJust add at end of the list\n\t\t */\n\t\tif (ch->action == KBREQUEST) ch->flags |= XECUTED;\n\t\tch->next = NULL;\n\t\tif (head)\n\t\t\thead->next = ch;\n\t\telse\n\t\t\tnewFamily = ch;\n\t\thead = ch;\n\t}\n\n\t/*\n\t *\tWalk through the old list comparing id fields\n\t */\n\tfor(old = family; old; old = old->next)\n\t\tif (strcmp(old->id, ch->id) == 0) {\n\t\t\told->new = ch;\n\t\t\tbreak;\n\t\t}\n  }\n\n  /*\n   *\tWe're done.\n   */\n  if (fp) fclose(fp);\n  if(tabdir) closedir(tabdir);\n\n#ifdef __linux__\n  check_kernel_console();\n#endif\n\n  /*\n   *\tLoop through the list of children, and see if they need to\n   *\tbe killed. \n   */\n\n  INITDBG(L_VB, \"Checking for children to kill\");\n  for(round = 0; round < 2; round++) {\n    talk = 1;\n    for(ch = family; ch; ch = ch->next) {\n\tch->flags &= ~KILLME;\n\n\t/*\n\t *\tIs this line deleted?\n\t */\n\tif (ch->new == NULL) ch->flags |= KILLME;\n\n\t/*\n\t *\tIf the entry has changed, kill it anyway. Note that\n\t *\twe do not check ch->process, only the \"action\" field.\n\t *\tThis way, you can turn an entry \"off\" immediately, but\n\t *\tchanges in the command line will only become effective\n\t *\tafter the running version has exited.\n\t */\n\tif (ch->new && ch->action != ch->new->action) ch->flags |= KILLME;\n\n\t/*\n\t *\tOnly BOOT processes may live in all levels\n\t */\n\tif (ch->action != BOOT &&\n\t    strchr(ch->rlevel, runlevel) == NULL) {\n\t\t/*\n\t\t *\tOndemand procedures live always,\n\t\t *\texcept in single user\n\t\t */\n\t\tif (runlevel == 'S' || !(ch->flags & DEMAND))\n\t\t\tch->flags |= KILLME;\n\t}\n\n\t/*\n\t *\tNow, if this process may live note so in the new list\n\t */\n\tif ((ch->flags & KILLME) == 0) {\n\t\tch->new->flags  = ch->flags;\n\t\tch->new->pid    = ch->pid;\n\t\tch->new->exstat = ch->exstat;\n\t\tcontinue;\n\t}\n\n\n\t/*\n\t *\tIs this process still around?\n\t */\n\tif ((ch->flags & RUNNING) == 0) {\n\t\tch->flags &= ~KILLME;\n\t\tcontinue;\n\t}\n\tINITDBG(L_VB, \"Killing \\\"%s\\\"\", ch->process);\n\tswitch(round) {\n\t\tcase 0: /* Send TERM signal */\n\t\t\tif (talk)\n\t\t\t\tinitlog(L_CO,\n\t\t\t\t\t\"Sending processes configured via /etc/inittab the TERM signal\");\n\t\t\tkill(-(ch->pid), SIGTERM);\n\t\t\tfoundOne = 1;\n\t\t\tbreak;\n\t\tcase 1: /* Send KILL signal and collect status */\n\t\t\tif (talk)\n\t\t\t\tinitlog(L_CO,\n\t\t\t\t\t\"Sending processes configured via /etc/inittab the KILL signal\");\n\t\t\tkill(-(ch->pid), SIGKILL);\n\t\t\tbreak;\n\t}\n\ttalk = 0;\n\t\n    }\n    /*\n     *\tSee if we have to wait sleep_time seconds\n     */\n    if (foundOne && round == 0) {\n\t/*\n\t *\tYup, but check every 10 milliseconds if we still have children.\n         *      The f < 100 * sleep_time refers to sleep time in 10 millisecond chunks.\n\t */\n\tfor(f = 0; f < 100 * sleep_time; f++) {\n\t\tfor(ch = family; ch; ch = ch->next) {\n\t\t\tif (!(ch->flags & KILLME)) continue;\n\t\t\tif ((ch->flags & RUNNING) && !(ch->flags & ZOMBIE))\n\t\t\t\tbreak;\n\t\t}\n\t\tif (ch == NULL) {\n\t\t\t/*\n\t\t\t *\tNo running children, skip SIGKILL\n\t\t\t */\n\t\t\tround = 1;\n\t\t\tfoundOne = 0; /* Skip the sleep below. */\n\t\t\tbreak;\n\t\t}\n\t\tdo_msleep(MINI_SLEEP);\n\t}\n    }\n  }\n\n  /*\n   *\tNow give all processes the chance to die and collect exit statuses.\n   */\n  if (foundOne) do_msleep(MINI_SLEEP);\n  for(ch = family; ch; ch = ch->next)\n\tif (ch->flags & KILLME) {\n\t\tif (!(ch->flags & ZOMBIE))\n\t\t    initlog(L_CO, \"Pid %d [id %s] seems to hang\", ch->pid,\n\t\t\t\tch->id);\n\t\telse {\n\t\t    INITDBG(L_VB, \"Updating utmp for pid %d [id %s]\",\n\t\t\t\tch->pid, ch->id);\n\t\t    ch->flags &= ~RUNNING;\n\t\t    if (ch->process[0] != '+')\n\t\t    \twrite_utmp_wtmp(\"\", ch->id, ch->pid, DEAD_PROCESS, NULL);\n\t\t}\n\t}\n\n  /*\n   *\tBoth rounds done; clean up the list.\n   */\n  sigemptyset(&nmask);\n  sigaddset(&nmask, SIGCHLD);\n  sigprocmask(SIG_BLOCK, &nmask, &omask);\n  for(ch = family; ch; ch = old) {\n\told = ch->next;\n\tfree(ch);\n  }\n  family = newFamily;\n  for(ch = family; ch; ch = ch->next) ch->new = NULL;\n  newFamily = NULL;\n  sigprocmask(SIG_SETMASK, &omask, NULL);\n\n#ifdef INITLVL\n  /*\n   *\tDispose of INITLVL file.\n   */\n  if (lstat(INITLVL, &st) >= 0 && S_ISLNK(st.st_mode)) {\n\t/*\n\t *\tINITLVL is a symbolic link, so just truncate the file.\n\t */\n\tclose(open(INITLVL, O_WRONLY|O_TRUNC));\n  } else {\n\t/*\n\t *\tDelete INITLVL file.\n\t */\n  \tunlink(INITLVL);\n  }\n#endif\n#ifdef INITLVL2\n  /*\n   *\tDispose of INITLVL2 file.\n   */\n  if (lstat(INITLVL2, &st) >= 0 && S_ISLNK(st.st_mode)) {\n\t/*\n\t *\tINITLVL2 is a symbolic link, so just truncate the file.\n\t */\n\tclose(open(INITLVL2, O_WRONLY|O_TRUNC));\n  } else {\n\t/*\n\t *\tDelete INITLVL2 file.\n\t */\n  \tunlink(INITLVL2);\n  }\n#endif\n}\n\n/*\n *\tWalk through the family list and start up children.\n *\tThe entries that do not belong here at all are removed\n *\tfrom the list.\n */\nstatic\nvoid start_if_needed(void)\n{\n\tCHILD *ch;\t\t/* Pointer to child */\n\tint delete;\t\t/* Delete this entry from list? */\n\n\tINITDBG(L_VB, \"Checking for children to start\");\n\n\tfor(ch = family; ch; ch = ch->next) {\n\n#if DEBUG\n\t\tif (ch->rlevel[0] == 'C') {\n\t\t\tINITDBG(L_VB, \"%s: flags %d\", ch->process, ch->flags);\n\t\t}\n#endif\n\n\t\t/* Are we waiting for this process? Then quit here. */\n\t\tif (ch->flags & WAITING) break;\n\n\t\t/* Already running? OK, don't touch it */\n\t\tif (ch->flags & RUNNING) continue;\n\n\t\t/* See if we have to start it up */\n\t\tdelete = 1;\n\t\tif (strchr(ch->rlevel, runlevel) ||\n\t\t    ((ch->flags & DEMAND) && !strchr(\"#*Ss\", runlevel))) {\n\t\t\tstartup(ch);\n\t\t\tdelete = 0;\n\t\t}\n\n\t\tif (delete) {\n\t\t\t/* is this OK? */\n\t\t\tch->flags &= ~(RUNNING|WAITING);\n\t\t\tif (!ISPOWER(ch->action) && ch->action != KBREQUEST)\n\t\t\t\tch->flags &= ~XECUTED;\n\t\t\tch->pid = 0;\n\t\t} else\n\t\t\t/* Do we have to wait for this process? */\n\t\t\tif (ch->flags & WAITING) break;\n\t}\n\t/* Done. */\n}\n\n/*\n *\tAsk the user on the console for a runlevel\n */\nstatic\nint ask_runlevel(void)\n{\n\tconst char\tprompt[] = \"\\nEnter runlevel: \";\n\tchar\t\tbuf[8];\n\tint\t\tlvl = -1;\n\tint\t\tfd;\n\n\tconsole_stty();\n\tfd = console_open(O_RDWR|O_NOCTTY);\n\n\tif (fd < 0) return('S');\n\n\twhile(!strchr(\"0123456789S\", lvl)) {\n\t\tsafe_write(fd, prompt, sizeof(prompt) - 1);\n\t\tif (read(fd, buf, sizeof(buf)) <= 0)\n\t\t\tbuf[0] = 0;\n  \t\tif (buf[0] != 0 && (buf[1] == '\\r' || buf[1] == '\\n'))\n\t\t\tlvl = buf[0];\n\t\tif (islower(lvl)) lvl = toupper(lvl);\n\t}\n\tclose(fd);\n\treturn lvl;\n}\n\n/*\n *\tSearch the INITTAB file for the 'initdefault' field, with the default\n *\trunlevel. If this fails, ask the user to supply a runlevel.\n */\nstatic\nint get_init_default(void)\n{\n\tCHILD *ch;\n\tint lvl = -1;\n\tchar *p;\n\n\t/*\n\t *\tLook for initdefault.\n\t */\n\tfor(ch = family; ch; ch = ch->next)\n\t\tif (ch->action == INITDEFAULT) {\n\t\t\tp = ch->rlevel;\n\t\t\twhile(*p) {\n\t\t\t\tif (*p > lvl) lvl = *p;\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t/*\n\t *\tSee if level is valid\n\t */\n\tif (lvl > 0) {\n\t\tif (islower(lvl)) lvl = toupper(lvl);\n\t\tif (strchr(\"0123456789S\", lvl) == NULL) {\n\t\t\tinitlog(L_VB,\n\t\t\t\t\"Initdefault level '%c' is invalid\", lvl);\n\t\t\tlvl = 0;\n\t\t}\n\t}\n\t/*\n\t *\tAsk for runlevel on console if needed.\n\t */\n\tif (lvl <= 0) lvl = ask_runlevel();\n\n\t/*\n\t *\tLog the fact that we have a runlevel now.\n\t */\n        Write_Runlevel_Log(lvl);\n\treturn lvl;\n}\n\n\n/*\n *\tWe got signaled.\n *\n *\tDo actions for the new level. If we are compatible with\n *\tthe \"old\" INITLVL and arg == 0, try to read the new\n *\trunlevel from that file first.\n */\nstatic\nint read_level(int arg)\n{\n\tCHILD\t\t*ch;\t\t\t/* Walk through list */\n\tunsigned char\tfoo = 'X';\t\t/* Contents of INITLVL */\n\tint\t\tok = 1;\n#ifdef INITLVL\n\tFILE\t\t*fp;\n\tstruct stat\tstt;\n\tint\t\tst;\n#endif\n\n\tif (arg) foo = arg;\n\n#ifdef INITLVL\n\tok = 0;\n\n\tif (arg == 0) {\n\t\tfp = NULL;\n\t\tif (stat(INITLVL, &stt) != 0 || stt.st_size != 0L)\n\t\t\tfp = fopen(INITLVL, \"r\");\n#ifdef INITLVL2\n\t\tif (fp == NULL &&\n\t\t    (stat(INITLVL2, &stt) != 0 || stt.st_size != 0L))\n\t\t\tfp = fopen(INITLVL2, \"r\");\n#endif\n\t\tif (fp == NULL) {\n\t\t\t/* INITLVL file empty or not there - act as 'init q' */\n\t\t\tinitlog(L_SY, \"Re-reading inittab\");\n  \t\t\treturn(runlevel);\n\t\t}\n\t\tok = fscanf(fp, \"%c %d\", &foo, &st);\n\t\tfclose(fp);\n\t} else {\n\t\t/* We go to the new runlevel passed as an argument. */\n\t\tfoo = arg;\n\t\tok = 1;\n\t}\n\tif (ok == 2) sleep_time = st;\n\n#endif /* INITLVL */\n\n\tif (islower(foo)) foo = toupper(foo);\n\tif (ok < 1 || ok > 2 || strchr(\"QS0123456789ABCU\", foo) == NULL) {\n \t\tinitlog(L_VB, \"bad runlevel: %c\", foo);\n  \t\treturn runlevel;\n\t}\n\n\t/* Log this action */\n\tswitch(foo) {\n\t\tcase 'S':\n  \t\t\tinitlog(L_VB, \"Going single user\");\n\t\t\tbreak;\n\t\tcase 'Q':\n\t\t\tinitlog(L_SY, \"Re-reading inittab\");\n\t\t\tbreak;\n\t\tcase 'A':\n\t\tcase 'B':\n\t\tcase 'C':\n\t\t\tinitlog(L_SY,\n\t\t\t\t\"Activating demand-procedures for '%c'\", foo);\n\t\t\tbreak;\n\t\tcase 'U':\n\t\t\tinitlog(L_SY, \"Trying to re-exec init\");\n\t\t\treturn 'U';\n\t\tdefault:\n\t\t  \tinitlog(L_VB, \"Switching to runlevel: %c\", foo);\n\t}\n\n\tif (foo == 'Q') {\n#if defined(SIGINT_ONLYONCE) && (SIGINT_ONLYONCE == 1)\n\t\t/* Re-enable signal from keyboard */\n\t\tstruct sigaction sa;\n\t\tSETSIG(sa, SIGINT, signal_handler, 0);\n#endif\n\t\treturn runlevel;\n\t}\n\n\t/* Check if this is a runlevel a, b or c */\n\tif (strchr(\"ABC\", foo)) {\n\t\tif (runlevel == 'S') return(runlevel);\n\n\t\t/* Read inittab again first! */\n\t\tread_inittab();\n\n  \t\t/* Mark those special tasks */\n\t\tfor(ch = family; ch; ch = ch->next)\n\t\t\tif (strchr(ch->rlevel, foo) != NULL ||\n\t\t\t    strchr(ch->rlevel, tolower(foo)) != NULL) {\n\t\t\t\tch->flags |= DEMAND;\n\t\t\t\tch->flags &= ~XECUTED;\n\t\t\t\tINITDBG(L_VB,\n\t\t\t\t\t\"Marking (%s) as ondemand, flags %d\",\n\t\t\t\t\tch->id, ch->flags);\n\t\t\t}\n  \t\treturn runlevel;\n\t}\n\n\t/* Store both the old and the new runlevel. */\n\twrote_utmp_rlevel = 0;\n\twrote_wtmp_rlevel = 0;\n\twrite_utmp_wtmp(\"runlevel\", \"~~\", foo + 256*runlevel, RUN_LVL, \"~\");\n\tthislevel = foo;\n\tprevlevel = runlevel;\n        Write_Runlevel_Log(runlevel);\n\treturn foo;\n}\n\n\n/*\n *\tThis procedure is called after every signal (SIGHUP, SIGALRM..)\n *\n *\tOnly clear the 'failing' flag if the process is sleeping\n *\tlonger than 5 minutes, or inittab was read again due\n *\tto user interaction.\n */\nstatic\nvoid fail_check(void)\n{\n\tCHILD\t*ch;\t\t\t/* Pointer to child structure */\n\ttime_t\tt;\t\t\t/* System time */\n\ttime_t\tnext_alarm = 0;\t\t/* When to set next alarm */\n\n\ttime(&t);\n\n\tfor(ch = family; ch; ch = ch->next) {\n\n\t\tif (ch->flags & FAILING) {\n\t\t\t/* Can we free this sucker? */\n\t\t\tif (ch->tm + SLEEPTIME < t) {\n\t\t\t\tch->flags &= ~FAILING;\n\t\t\t\tch->count = 0;\n\t\t\t\tch->tm = 0;\n\t\t\t} else {\n\t\t\t\t/* No, we'll look again later */\n\t\t\t\tif (next_alarm == 0 ||\n\t\t\t\t    ch->tm + SLEEPTIME > next_alarm)\n\t\t\t\t\tnext_alarm = ch->tm + SLEEPTIME;\n\t\t\t}\n\t\t}\n\t}\n\tif (next_alarm) {\n\t\tnext_alarm -= t;\n\t\tif (next_alarm < 1) next_alarm = 1;\n\t\talarm(next_alarm);\n\t}\n}\n\n/* Set all 'Fail' timers to 0 */\nstatic\nvoid fail_cancel(void)\n{\n\tCHILD *ch;\n\n\tfor(ch = family; ch; ch = ch->next) {\n\t\tch->count = 0;\n\t\tch->tm = 0;\n\t\tch->flags &= ~FAILING;\n\t}\n}\n\n/*\n *\tStart up powerfail entries.\n */\nstatic\nvoid do_power_fail(int pwrstat)\n{\n\tCHILD *ch;\n\n\t/*\n\t *\tTell powerwait & powerfail entries to start up\n\t */\n\tfor (ch = family; ch; ch = ch->next) {\n\t\tif (pwrstat == 'O') {\n\t\t\t/*\n\t\t \t *\tThe power is OK again.\n\t\t \t */\n\t\t\tif (ch->action == POWEROKWAIT)\n\t\t\t\tch->flags &= ~XECUTED;\n\t\t} else if (pwrstat == 'L') {\n\t\t\t/*\n\t\t\t *\tLow battery, shut down now.\n\t\t\t */\n\t\t\tif (ch->action == POWERFAILNOW)\n\t\t\t\tch->flags &= ~XECUTED;\n\t\t} else {\n\t\t\t/*\n\t\t\t *\tPower is failing, shutdown imminent\n\t\t\t */\n\t\t\tif (ch->action == POWERFAIL || ch->action == POWERWAIT)\n\t\t\t\tch->flags &= ~XECUTED;\n\t\t}\n\t}\n}\n\n/*\n *\tCheck for state-pipe presence\n */\nstatic\nint check_pipe(int fd)\n{\n\tstruct timeval\tt;\n\tfd_set\t\ts;\n\tchar\t\tsignature[8];\n\n\tFD_ZERO(&s);\n\tFD_SET(fd, &s);\n\tt.tv_sec = t.tv_usec = 0;\n\n\tif (select(fd+1, &s, NULL, NULL, &t) != 1)\n\t\treturn 0;\n\tif (read(fd, signature, 8) != 8)\n\t\t return 0;\n\treturn strncmp(Signature, signature, 8) == 0;\n}\n\n/*\n *\t Make a state-pipe.\n */\nstatic\nint make_pipe(int fd)\n{\n\tint fds[2];\n\n\tif (pipe(fds)) {\n\t\tinitlog(L_VB, \"pipe: %m\");\n\t\treturn -1;\n\t}\n\tdup2(fds[0], fd);\n\tclose(fds[0]);\n\tfcntl(fds[1], F_SETFD, 1);\n\tfcntl(fd, F_SETFD, 0);\n\tsafe_write(fds[1], Signature, 8);\n\n\treturn fds[1];\n}\n\n/*\n *\tAttempt to re-exec.\n *      Renaming to my_re_exec since re_exec is now a common function name\n *      which conflicts.\n */\nstatic\nvoid my_re_exec(void)\n{\n\tCHILD\t\t*ch;\n\tsigset_t\tmask, oldset;\n\tpid_t\t\tpid;\n\tchar\t\t**env;\n\tint\t\tfd;\n\n\tif (strchr(\"S0123456\",runlevel) == NULL)\n\t\treturn;\n\n\t/*\n\t *\tReset the alarm, and block all signals.\n\t */\n\talarm(0);\n\tsigfillset(&mask);\n\tsigprocmask(SIG_BLOCK, &mask, &oldset);\n\n\t/*\n\t *\tconstruct a pipe fd --> STATE_PIPE and write a signature\n\t */\n\tif ((fd = make_pipe(STATE_PIPE)) < 0) {\n\t\tsigprocmask(SIG_SETMASK, &oldset, NULL);\n\t\tinitlog(L_CO, \"Attempt to re-exec failed\");\n\t}\n\n\tfail_cancel();\n\tif (pipe_fd >= 0) \n          close(pipe_fd);\n   \tpipe_fd = -1;\n\tDELSET(got_signals, SIGCHLD);\n\tDELSET(got_signals, SIGHUP);\n\tDELSET(got_signals, SIGUSR1);\n\tDELSET(got_signals, SIGUSR2);\n\n\t/*\n\t *\tThat should be cleaned.\n\t */\n\tfor(ch = family; ch; ch = ch->next)\n\t    if (ch->flags & ZOMBIE) {\n\t\tINITDBG(L_VB, \"Child died, PID= %d\", ch->pid);\n\t\tch->flags &= ~(RUNNING|ZOMBIE|WAITING);\n\t\tif (ch->process[0] != '+')\n\t\t\twrite_utmp_wtmp(\"\", ch->id, ch->pid, DEAD_PROCESS, NULL);\n\t    }\n\n\tif ((pid = fork()) == 0) {\n\t\t/*\n\t\t *\tChild sends state information to the parent.\n\t\t */\n\t\tsend_state(fd);\n\t\texit(0);\n\t}\n\n\t/*\n\t *\tThe existing init process execs a new init binary.\n\t */\n\tenv = init_buildenv(0);\n\texecle(myname, myname, \"--init\", NULL, env);\n\n\t/*\n\t *\tWe shouldn't be here, something failed. \n\t *\tClose the state pipe, unblock signals and return.\n\t */\n\tinit_freeenv(env);\n\tclose(fd);\n\tclose(STATE_PIPE);\n\tsigprocmask(SIG_SETMASK, &oldset, NULL);\n\tinitlog(L_CO, \"Attempt to re-exec failed\");\n}\n\n/*\n *\tRedo utmp/wtmp entries if required or requested\n *\tCheck for written records and size of utmp\n */\nstatic\nvoid redo_utmp_wtmp(void)\n{\n\tstruct stat ustat;\n\tconst int ret = stat(UTMP_FILE, &ustat);\n\n\tif ((ret < 0) || (ustat.st_size == 0))\n\t\twrote_utmp_rlevel = wrote_utmp_reboot = 0;\n\n\tif ((wrote_wtmp_reboot == 0) || (wrote_utmp_reboot == 0))\n\t\twrite_utmp_wtmp(\"reboot\", \"~~\", 0, BOOT_TIME, \"~\");\n\n\tif ((wrote_wtmp_rlevel == 0) || (wrote_utmp_rlevel == 0))\n\t\twrite_utmp_wtmp(\"runlevel\", \"~~\", thislevel + 256 * prevlevel, RUN_LVL, \"~\");\n}\n\n/*\n *\tWe got a change runlevel request through the\n *\tinit.fifo. Process it.\n */\nstatic\nvoid fifo_new_level(int level)\n{\n#if CHANGE_WAIT\n\tCHILD\t*ch;\n#endif\n\tint\toldlevel;\n\n\tif (level == runlevel) return;\n\n#if CHANGE_WAIT\n\t/* Are we waiting for a child? */\n\tfor(ch = family; ch; ch = ch->next)\n\t\tif (ch->flags & WAITING) break;\n\tif (ch == NULL)\n#endif\n\t{\n\t\t/* We need to go into a new runlevel */\n\t\toldlevel = runlevel;\n\t\trunlevel = read_level(level);\n\t\tif (runlevel == 'U') {\n\t\t\trunlevel = oldlevel;\n\t\t\tmy_re_exec();\n\t\t} else {\n\t\t\tif (oldlevel != 'S' && runlevel == 'S') console_stty();\n\t\t\tif (runlevel == '6' || runlevel == '0' ||\n\t\t\t    runlevel == '1') console_stty();\n\t\t\tif (runlevel  > '1' && runlevel  < '6') redo_utmp_wtmp();\n\t\t\tread_inittab();\n\t\t\tfail_cancel();\n\t\t\tsetproctitle(\"init [%c]\", (int)runlevel);\n\t\t}\n\t}\n        Write_Runlevel_Log(runlevel);\n}\n\n\n/*\n *\tSet/unset environment variables. The variables are\n *\tencoded as KEY=VAL\\0KEY=VAL\\0\\0. With \"=VAL\" it means\n *\tsetenv, without it means unsetenv.\n */\nstatic\nvoid initcmd_setenv(char *data, int size)\n{\n\tchar\t\t*env, *p, *e;\n\tsize_t\t\tsz;\n\tint\t\ti, eq;\n\n\te = data + size;\n\n\twhile (*data && data < e) {\n\t\tfor (p = data; *p && p < e; p++)\n\t\t\t;\n\t\tif (*p) break;\n\t\tenv = data;\n\t\tdata = ++p;\n\n\t\t/*\n\t\t *\tWe only allow INIT_* to be set.\n\t\t */\n\t\tif (strncmp(env, \"INIT_\", 5) != 0)\n\t\t\tcontinue;\n\n\t\tsz = strcspn(env, \"=\");\n\t\teq = (env[sz] == '=');\n\n\t\t/*initlog(L_SY, \"init_setenv: %s, %d, %d\", env, eq, sz);*/\n\n\t\t/* Free existing vars. */\n\t\tfor (i = 0; i < NR_EXTRA_ENV; i++) {\n\t\t\tif (extra_env[i] == NULL)\n\t\t\t\tcontinue;\n\t\t\tif (sz != strcspn(extra_env[i], \"=\"))\n\t\t\t\tcontinue;\n\t\t\tif (strncmp(extra_env[i], env, sz) == 0) {\n\t\t\t\tfree(extra_env[i]);\n\t\t\t\textra_env[i] = NULL;\n\t\t\t}\n\t\t}\n\n\t\tif (eq == 0)\n\t\t\tcontinue;\n\n\t\t/* Set new vars if needed. */\n\t\tfor (i = 0; i < NR_EXTRA_ENV; i++) {\n\t\t\tif (extra_env[i] == NULL) {\n\t\t\t\textra_env[i] = istrdup(env);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/*\n *\tRead from the init FIFO. Processes like telnetd and rlogind can\n *\task us to create login processes on their behalf.\n */\nstatic\nvoid check_init_fifo(void)\n{\n  struct init_request\trequest;\n  struct timeval\ttv;\n  struct stat\t\tst, st2;\n  fd_set\t\tfds;\n  int\t\t\tn;\n  int\t\t\tquit = 0;\n\n  /*\n   *\tFirst, try to create /run/initctl if not present.\n   */\n  if (stat(INIT_FIFO, &st2) < 0 && errno == ENOENT)\n\t(void)mkfifo(INIT_FIFO, 0600);\n\n  /*\n   *\tIf /run/initctl is open, stat the file to see if it\n   *\tis still the _same_ inode.\n   */\n  if (pipe_fd >= 0) {\n\tfstat(pipe_fd, &st);\n\tif (stat(INIT_FIFO, &st2) < 0 ||\n\t    st.st_dev != st2.st_dev ||\n\t    st.st_ino != st2.st_ino) {\n\t\tclose(pipe_fd);\n\t\tpipe_fd = -1;\n\t}\n  }\n\n  /*\n   *\tNow finally try to open /run/initctl if pipe_fd is -1\n   *    if it is -2, then we leave it closed\n   */\n  if (pipe_fd == -1) {\n\tif ((pipe_fd = open(INIT_FIFO, O_RDWR|O_NONBLOCK)) >= 0) {\n\t\tfstat(pipe_fd, &st);\n\t\tif (!S_ISFIFO(st.st_mode)) {\n\t\t\tinitlog(L_VB, \"%s is not a fifo\", INIT_FIFO);\n\t\t\tclose(pipe_fd);\n\t\t\tpipe_fd = -1;\n\t\t}\n\t}\n\tif (pipe_fd >= 0) {\n\t\t/*\n\t\t *\tDon't use fd's 0, 1 or 2.\n\t\t */\n\t\t(void) dup2(pipe_fd, PIPE_FD);\n\t\tclose(pipe_fd);\n\t\tpipe_fd = PIPE_FD;\n\n\t\t/*\n\t\t *\tReturn to caller - we'll be back later.\n\t\t */\n\t}\n  }\n\n  /* Wait for data to appear, _if_ the pipe was opened. */\n  if (pipe_fd >= 0) { \n     while(!quit) {\n\n\t/* Do select, return on EINTR. */\n\tFD_ZERO(&fds);\n\tFD_SET(pipe_fd, &fds);\n\ttv.tv_sec = 5;\n\ttv.tv_usec = 0;\n\tn = select(pipe_fd + 1, &fds, NULL, NULL, &tv);\n\tif (n <= 0) {\n\t\tif (n == 0 || errno == EINTR) return;\n\t\tcontinue;\n\t}\n\n\t/* Read the data, return on EINTR. */\n\tn = read(pipe_fd, &request, sizeof(request));\n\tif (n == 0) {\n\t\t/*\n\t\t *\tEnd of file. This can't happen under Linux (because\n\t\t *\tthe pipe is opened O_RDWR - see select() in the\n\t\t *\tkernel) but you never know...\n\t\t */\n\t\tclose(pipe_fd);\n\t\tpipe_fd = -1;\n\t\treturn;\n\t}\n\tif (n <= 0) {\n\t\tif (errno == EINTR) return;\n\t\tinitlog(L_VB, \"error reading initrequest\");\n\t\tcontinue;\n\t}\n\n\t/*\n\t *\tThis is a convenient point to also try to\n\t *\tfind the console device or check if it changed.\n\t */\n\tconsole_init();\n\n\t/*\n\t *\tProcess request.\n\t */\n\tif (request.magic != INIT_MAGIC || n != sizeof(request)) {\n\t\tinitlog(L_VB, \"got bogus initrequest\");\n\t\tcontinue;\n\t}\n\tswitch(request.cmd) {\n\t\tcase INIT_CMD_RUNLVL:\n\t\t\tsleep_time = request.sleeptime;\n\t\t\tfifo_new_level(request.runlevel);\n\t\t\tquit = 1;\n\t\t\tbreak;\n\t\tcase INIT_CMD_POWERFAIL:\n\t\t\tsleep_time = request.sleeptime;\n\t\t\tdo_power_fail('F');\n\t\t\tquit = 1;\n\t\t\tbreak;\n\t\tcase INIT_CMD_POWERFAILNOW:\n\t\t\tsleep_time = request.sleeptime;\n\t\t\tdo_power_fail('L');\n\t\t\tquit = 1;\n\t\t\tbreak;\n\t\tcase INIT_CMD_POWEROK:\n\t\t\tsleep_time = request.sleeptime;\n\t\t\tdo_power_fail('O');\n\t\t\tquit = 1;\n\t\t\tbreak;\n\t\tcase INIT_CMD_SETENV:\n\t\t\tinitcmd_setenv(request.i.data, sizeof(request.i.data));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tinitlog(L_VB, \"got unimplemented initrequest.\");\n\t\t\tbreak;\n\t}   /* end of switch */\n    }       /* end of while loop not quitting */\n  }         /* end of if the pipe is open */\n  /*\n   *\tWe come here if the pipe couldn't be opened.\n   */\n  if (pipe_fd == -1) pause();\n\n}\n\n\n/*\n *\tThis function is used in the transition\n *\tsysinit (-> single user) boot -> multi-user.\n */\nstatic\nvoid boot_transitions()\n{\n  CHILD\t\t*ch;\n  static int\tnewlevel = 0;\n  static int\twarn = 1;\n  int\t\tloglevel;\n  int\t\toldlevel;\n\n  /* Check if there is something to wait for! */\n  for( ch = family; ch; ch = ch->next )\n\tif ((ch->flags & RUNNING) && ch->action != BOOT) break;\n     \n  if (ch == NULL) {\n\t/* No processes left in this level, proceed to next level. */\n\tloglevel = -1;\n\toldlevel = 'N';\n\tswitch(runlevel) {\n\t\tcase '#': /* SYSINIT -> BOOT */\n\t\t\tINITDBG(L_VB, \"SYSINIT -> BOOT\");\n\n\t\t\t/* Write a boot record. */\n\t\t\twrote_utmp_reboot = 0;\n\t\t\twrote_wtmp_reboot = 0;\n\t\t\twrite_utmp_wtmp(\"reboot\", \"~~\", 0, BOOT_TIME, \"~\");\n\n  \t\t\t/* Get our run level */\n  \t\t\tnewlevel = dfl_level ? dfl_level : get_init_default();\n\t\t\tif (newlevel == 'S') {\n\t\t\t\trunlevel = newlevel;\n\t\t\t\t/* Not really 'S' but show anyway. */\n\t\t\t\tsetproctitle(\"init [S]\");\n\t\t\t} else\n\t\t\t\trunlevel = '*';\n\t\t\tbreak;\n\t\tcase '*': /* BOOT -> NORMAL */\n\t\t\tINITDBG(L_VB, \"BOOT -> NORMAL\");\n\t\t\tif (runlevel != newlevel)\n\t\t\t\tloglevel = newlevel;\n\t\t\trunlevel = newlevel;\n\t\t\tdid_boot = 1;\n\t\t\twarn = 1;\n\t\t\tbreak;\n\t\tcase 'S': /* Ended SU mode */\n\t\tcase 's':\n\t\t\tINITDBG(L_VB, \"END SU MODE\");\n\t\t\tnewlevel = get_init_default();\n\t\t\tif (!did_boot && newlevel != 'S')\n\t\t\t\trunlevel = '*';\n\t\t\telse {\n\t\t\t\tif (runlevel != newlevel)\n\t\t\t\t\tloglevel = newlevel;\n\t\t\t\trunlevel = newlevel;\n\t\t\t\toldlevel = 'S';\n\t\t\t}\n\t\t\twarn = 1;\n\t\t\tfor(ch = family; ch; ch = ch->next)\n\t\t\t    if (strcmp(ch->rlevel, \"S\") == 0)\n\t\t\t\tch->flags &= ~(FAILING|WAITING|XECUTED);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tif (warn)\n\t\t\t  initlog(L_VB,\n\t\t\t\t\"no more processes left in this runlevel\");\n\t\t\twarn = 0;\n\t\t\tloglevel = -1;\n\t\t\tif (got_signals == 0)\n\t\t\t\tcheck_init_fifo();\n\t\t\tbreak;\n\t}\n\tif (loglevel > 0) {\n\t\tinitlog(L_VB, \"Entering runlevel: %c\", runlevel);\n\t\twrote_utmp_rlevel = 0;\n\t\twrote_wtmp_rlevel = 0;\n\t\twrite_utmp_wtmp(\"runlevel\", \"~~\", runlevel + 256 * oldlevel, RUN_LVL, \"~\");\n\t\tthislevel = runlevel;\n\t\tprevlevel = oldlevel;\n\t\tsetproctitle(\"init [%c]\", (int)runlevel);\n\t}\n        Write_Runlevel_Log(runlevel);\n  }\n}\n\n/*\n *\tInit got hit by a signal. See which signal it is,\n *\tand act accordingly.\n */\nstatic\nvoid process_signals()\n{\n  CHILD\t\t*ch;\n  int\t\tpwrstat;\n  int\t\toldlevel;\n  int\t\tfd;\n  char\t\tc;\n\n  if (ISMEMBER(got_signals, SIGPWR)) {\n\tINITDBG(L_VB, \"got SIGPWR\");\n\t/* See _what_ kind of SIGPWR this is. */\n\tpwrstat = 0;\n\tif ((fd = open(PWRSTAT, O_RDONLY)) >= 0) {\n\t\tif (read(fd, &c, 1) != 1)\n\t\t\tc = 0;\n\t\tpwrstat = c;\n\t\tclose(fd);\n\t\tunlink(PWRSTAT);\n\t} else if ((fd = open(PWRSTAT_OLD, O_RDONLY)) >= 0) {\n\t\t/* Path changed 2010-03-20.  Look for the old path for a while. */\n\t\tinitlog(L_VB, \"warning: found obsolete path %s, use %s instead\",\n\t\t\tPWRSTAT_OLD, PWRSTAT);\n\t\tif (read(fd, &c, 1) != 1)\n\t\t\tc = 0;\n\t\tpwrstat = c;\n\t\tclose(fd);\n\t\tunlink(PWRSTAT_OLD);\n        }\n\tdo_power_fail(pwrstat);\n\tDELSET(got_signals, SIGPWR);\n  }\n\n  if (ISMEMBER(got_signals, SIGINT)) {\n#if defined(SIGINT_ONLYONCE) && (SIGINT_ONLYONCE == 1)\n\t/* Ignore any further signal from keyboard */\n\tstruct sigaction sa;\n\tSETSIG(sa, SIGINT, SIG_IGN, SA_RESTART);\n#endif\n\tINITDBG(L_VB, \"got SIGINT\");\n\t/* Tell ctrlaltdel entry to start up */\n\tfor(ch = family; ch; ch = ch->next)\n\t\tif (ch->action == CTRLALTDEL)\n\t\t\tch->flags &= ~XECUTED;\n\tDELSET(got_signals, SIGINT);\n  }\n\n  if (ISMEMBER(got_signals, SIGRTMIN+4)) {\n\tINITDBG(L_VB, \"got SIGRTMIN+4\");\n\tstartup(&ch_poweroff);\n\tDELSET(got_signals, SIGRTMIN+4);\n  }\n\n  if (ISMEMBER(got_signals, SIGWINCH)) {\n\tINITDBG(L_VB, \"got SIGWINCH\");\n\t/* Tell kbrequest entry to start up */\n\tfor(ch = family; ch; ch = ch->next)\n\t\tif (ch->action == KBREQUEST)\n\t\t\tch->flags &= ~XECUTED;\n\tDELSET(got_signals, SIGWINCH);\n  }\n\n  if (ISMEMBER(got_signals, SIGALRM)) {\n\tINITDBG(L_VB, \"got SIGALRM\");\n\t/* The timer went off: check it out */\n\tDELSET(got_signals, SIGALRM);\n  }\n\n  if (ISMEMBER(got_signals, SIGCHLD)) {\n\tINITDBG(L_VB, \"got SIGCHLD\");\n\t/* First set flag to 0 */\n\tDELSET(got_signals, SIGCHLD);\n\n\t/* See which child this was */\n\tfor(ch = family; ch; ch = ch->next)\n\t    if (ch->flags & ZOMBIE) {\n\t\tINITDBG(L_VB, \"Child died, PID= %d\", ch->pid);\n\t\tch->flags &= ~(RUNNING|ZOMBIE|WAITING);\n\t\tif (ch->process[0] != '+')\n\t\t\twrite_utmp_wtmp(\"\", ch->id, ch->pid, DEAD_PROCESS, NULL);\n\t    }\n\n  }\n\n  if (ISMEMBER(got_signals, SIGHUP)) {\n\tINITDBG(L_VB, \"got SIGHUP\");\n#if CHANGE_WAIT\n\t/* Are we waiting for a child? */\n\tfor(ch = family; ch; ch = ch->next)\n\t\tif (ch->flags & WAITING) break;\n\tif (ch == NULL)\n#endif\n\t{\n\t\t/* We need to go into a new runlevel */\n\t\toldlevel = runlevel;\n#ifdef INITLVL\n\t\trunlevel = read_level(0);\n#endif\n\t\tif (runlevel == 'U') {\n\t\t\trunlevel = oldlevel;\n\t\t\tmy_re_exec();\n\t\t} else {\n\t\t\tif (oldlevel != 'S' && runlevel == 'S') console_stty();\n\t\t\tif (runlevel == '6' || runlevel == '0' ||\n\t\t\t    runlevel == '1') console_stty();\n\t\t\tread_inittab();\n\t\t\tfail_cancel();\n\t\t\tsetproctitle(\"init [%c]\", (int)runlevel);\n\t\t\tDELSET(got_signals, SIGHUP);\n\t\t}\n                Write_Runlevel_Log(runlevel);\n\t}\n  }\n  if (ISMEMBER(got_signals, SIGUSR1)) {\n\t/*\n\t *\tSIGUSR1 means close and reopen /run/initctl\n\t */\n\tINITDBG(L_VB, \"got SIGUSR1\");\n\tif (pipe_fd)\n           close(pipe_fd);\n\tpipe_fd = -1;\n\tDELSET(got_signals, SIGUSR1);\n  }\n  else if (ISMEMBER(got_signals, SIGUSR2)) {\n       /* SIGUSR1 mean close the pipe and leave it closed */\n       INITDBG(L_VB, \"got SIGUSR2\");\n       if (pipe_fd)\n           close(pipe_fd);\n       pipe_fd = -2;\n       DELSET(got_signals, SIGUSR2);\n  }\n}\n\n/*\n *\tThe main loop\n */ \nstatic\nvoid init_main(void)\n{\n  CHILD\t\t\t*ch;\n  struct sigaction\tsa;\n  sigset_t\t\tsgt;\n  int\t\t\tf, st;\n\n  if (!reload) {\n  \n#if INITDEBUG\n\t/*\n\t * Fork so we can debug the init process.\n\t */\n\tif ((f = fork()) > 0) {\n\t\tstatic const char killmsg[] = \"PRNT: init killed.\\r\\n\";\n\t\tpid_t rc;\n\n\t\twhile((rc = wait(&st)) != f)\n\t\t\tif (rc < 0 && errno == ECHILD)\n\t\t\t\tbreak;\n\t\tsafe_write(1, killmsg, sizeof(killmsg) - 1);\n\t\twhile(1) pause();\n\t}\n#endif\n\n#ifdef __linux__\n\t/*\n\t *\tTell the kernel to send us SIGINT when CTRL-ALT-DEL\n\t *\tis pressed, and that we want to handle keyboard signals.\n\t */\n\tinit_reboot(BMAGIC_SOFT);\n\tif ((f = open(VT_MASTER, O_RDWR | O_NOCTTY)) >= 0) {\n\t\t(void) ioctl(f, KDSIGACCEPT, SIGWINCH);\n\t\tclose(f);\n\t} else\n\t\t(void) ioctl(0, KDSIGACCEPT, SIGWINCH);\n#endif\n\n\t/*\n\t *\tIgnore all signals.\n\t */\n\tfor(f = 1; f <= NSIG; f++)\n\t\tSETSIG(sa, f, SIG_IGN, SA_RESTART);\n  }\n\n  SETSIG(sa, SIGALRM,  signal_handler, 0);\n  SETSIG(sa, SIGHUP,   signal_handler, 0);\n  SETSIG(sa, SIGINT,   signal_handler, 0);\n  SETSIG(sa, SIGCHLD,  chld_handler, SA_RESTART);\n  SETSIG(sa, SIGPWR,   signal_handler, 0);\n  SETSIG(sa, SIGWINCH, signal_handler, 0);\n  SETSIG(sa, SIGUSR1,  signal_handler, 0);\n  SETSIG(sa, SIGUSR2,  signal_handler, 0);\n  SETSIG(sa, SIGSTOP,  stop_handler, SA_RESTART);\n  SETSIG(sa, SIGTSTP,  stop_handler, SA_RESTART);\n  SETSIG(sa, SIGCONT,  cont_handler, SA_RESTART);\n  SETSIG(sa, SIGSEGV,  (void (*)(int))segv_handler, SA_RESTART);\n  SETSIG(sa, SIGRTMIN+4, signal_handler, 0);\n\n  console_init();\n\n  if (!reload) {\n\tint fd;\n\n  \t/* Close whatever files are open, and reset the console. */\n\tclose(0);\n\tclose(1);\n\tclose(2);\n  \tconsole_stty();\n  \tsetsid();\n\n  \t/*\n\t *\tSet default PATH variable.\n\t */\n  \tsetenv(\"PATH\", PATH_DEFAULT, 1 /* Overwrite */);\n\n  \t/*\n\t *\tInitialize /var/run/utmp (only works if /var is on\n\t *\troot and mounted rw)\n\t */\n\tif ((fd = open(UTMP_FILE, O_WRONLY|O_CREAT|O_TRUNC, 0644)) >= 0)\n\t\tclose(fd);\n\n  \t/*\n\t *\tSay hello to the world\n\t */\n  \tinitlog(L_CO, bootmsg, \"booting\");\n\n  \t/*\n\t *\tSee if we have to start an emergency shell.\n\t */\n\tif (emerg_shell) {\n\t\tpid_t rc;\n\t\tSETSIG(sa, SIGCHLD, SIG_DFL, SA_RESTART);\n\t\tif (spawn(&ch_emerg, &f) > 0) {\n\t\t\twhile((rc = wait(&st)) != f)\n\t\t\t\tif (rc < 0 && errno == ECHILD)\n\t\t\t\t\tbreak;\n\t\t}\n  \t\tSETSIG(sa, SIGCHLD,  chld_handler, SA_RESTART);\n  \t}\n\n  \t/*\n\t *\tStart normal boot procedure.\n\t */\n  \trunlevel = '#';\n  \tread_inittab();\n  \n  } else {\n\t/*\n\t *\tRestart: unblock signals and let the show go on\n\t */\n\tinitlog(L_CO, bootmsg, \"reloading\");\n\tsigfillset(&sgt);\n\tsigprocmask(SIG_UNBLOCK, &sgt, NULL);\n\n  \t/*\n\t *\tSet default PATH variable.\n\t */\n  \tsetenv(\"PATH\", PATH_DEFAULT, 0 /* Don't overwrite */);\n  }\n  start_if_needed();\n\n  while(1) {\n\n     /* See if we need to make the boot transitions. */\n     boot_transitions();\n     INITDBG(L_VB, \"init_main: waiting..\");\n\n     /* Check if there are processes to be waited on. */\n     for(ch = family; ch; ch = ch->next)\n\tif ((ch->flags & RUNNING) && ch->action != BOOT) break;\n\n#if CHANGE_WAIT\n     /* Wait until we get hit by some signal. */\n     while (ch != NULL && got_signals == 0) {\n\tif (ISMEMBER(got_signals, SIGHUP)) {\n\t\t/* See if there are processes to be waited on. */\n\t\tfor(ch = family; ch; ch = ch->next)\n\t\t\tif (ch->flags & WAITING) break;\n\t}\n\tif (ch != NULL) check_init_fifo();\n     }\n#else /* CHANGE_WAIT */\n     if (ch != NULL && got_signals == 0) check_init_fifo();\n#endif /* CHANGE_WAIT */\n\n     /* Check the 'failing' flags */\n     fail_check();\n\n     /* Process any signals. */\n     process_signals();\n\n     /* See what we need to start up (again) */\n     start_if_needed();\n  }\n  /*NOTREACHED*/\n}\n\n/*\n * Tell the user about the syntax we expect.\n */\nstatic\nvoid usage(char *s)\n{\n\tfprintf(stderr, \"Usage: %s {-e VAR[=VAL] | [-t SECONDS] {0|1|2|3|4|5|6|S|s|Q|q|A|a|B|b|C|c|U|u}}\\n\", s);\n\texit(1);\n}\n\nstatic\nint telinit(char *progname, int argc, char **argv)\n{\n#ifdef TELINIT_USES_INITLVL\n\tFILE\t\t\t*fp;\n#endif\n\tstruct init_request\trequest;\n\tstruct sigaction\tsa;\n\tint\t\t\tf, fd, l;\n\tchar\t\t\t*env = NULL;\n\n\tmemset(&request, 0, sizeof(request));\n\trequest.magic     = INIT_MAGIC;\n\n\twhile ((f = getopt(argc, argv, \"t:e:\")) != EOF) switch(f) {\n\t\tcase 't':\n\t\t\tsleep_time = atoi(optarg);\n\t\t\tbreak;\n\t\tcase 'e':\n\t\t\tif (env == NULL)\n\t\t\t\tenv = request.i.data;\n\t\t\tl = strlen(optarg);\n\t\t\tif (env + l + 2 > request.i.data + sizeof(request.i.data)) {\n\t\t\t\tfprintf(stderr, \"%s: -e option data \"\n\t\t\t\t\t\"too large\\n\", progname);\n\t\t\t\texit(1);\n\t\t\t}\n\t\t\tmemcpy(env, optarg, l);\n\t\t\tenv += l;\n\t\t\t*env++ = 0;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tusage(progname);\n\t\t\tbreak;\n\t}\n\n\tif (env) *env++ = 0;\n\n\tif (env) {\n\t\tif (argc != optind)\n\t\t\tusage(progname);\n\t\trequest.cmd = INIT_CMD_SETENV;\n\t} else {\n\t\tif (argc - optind != 1 || strlen(argv[optind]) != 1)\n\t\t\tusage(progname);\n\t\tif (!strchr(\"0123456789SsQqAaBbCcUu\", argv[optind][0]))\n\t\t\tusage(progname);\n\t\trequest.cmd = INIT_CMD_RUNLVL;\n\t\trequest.runlevel  = argv[optind][0];\n\t\trequest.sleeptime = sleep_time;\n\t}\n\n\t/* Change to the root directory. */\n\tif (0 != chdir(\"/\"))\n\t\tinitlog(L_VB, \"unable to chdir to /: %s\",\n\t\t\tstrerror(errno));\n\n\t/* Open the fifo and write a command. */\n\t/* Make sure we don't hang on opening /run/initctl */\n\tSETSIG(sa, SIGALRM, signal_handler, 0);\n\talarm(3);\n\tif ((fd = open(INIT_FIFO, O_WRONLY)) >= 0) {\n\t\tssize_t p = 0;\n\t\tsize_t s  = sizeof(request);\n\t\tvoid *ptr = &request;\n\n\t\twhile (s > 0) {\n\t\t\tp = write(fd, ptr, s);\n\t\t\tif (p < 0) {\n\t\t\t\tif (errno == EINTR || errno == EAGAIN)\n\t\t\t\t\tcontinue;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tptr += p;\n\t\t\ts -= p;\n\t\t}\n\t\tclose(fd);\n\t\talarm(0);\n\t\treturn 0;\n\t}\n\n#ifdef TELINIT_USES_INITLVL\n\tif (request.cmd == INIT_CMD_RUNLVL) {\n\t\t/* Fallthrough to the old method. */\n\n\t\t/* Now write the new runlevel. */\n\t\tif ((fp = fopen(INITLVL, \"w\")) == NULL) {\n\t\t\tfprintf(stderr, \"%s: cannot create %s\\n\",\n\t\t\t\tprogname, INITLVL);\n\t\t\texit(1);\n\t\t}\n\t\tfprintf(fp, \"%s %d\", argv[optind], sleep_time);\n\t\tfclose(fp);\n\n\t\t/* And tell init about the pending runlevel change. */\n\t\tif (kill(INITPID, SIGHUP) < 0) perror(progname);\n\n\t\treturn 0;\n\t}\n#endif\n\n\tfprintf(stderr, \"%s: \", progname);\n\tif (ISMEMBER(got_signals, SIGALRM)) {\n\t\tfprintf(stderr, \"timeout opening/writing control channel %s\\n\",\n\t\t\tINIT_FIFO);\n\t} else {\n\t\tperror(INIT_FIFO);\n\t}\n\treturn 1;\n}\n\n/*\n * Main entry for init and telinit.\n */\nint main(int argc, char **argv)\n{\n\tchar\t\t\t*p;\n\tint\t\t\tf;\n\tint\t\t\tisinit;\n#ifdef WITH_SELINUX\n\tint\t\t\tenforce = 0;\n#endif\n\n\t/* Get my own name */\n\tif ((p = strrchr(argv[0], '/')) != NULL)\n  \t\tp++;\n\telse\n  \t\tp = argv[0];\n\n        if ( (argc == 2) && (! strcmp(argv[1], \"--version\") ) )\n        {\n           printf(\"SysV init version: %s\\n\\n\", VERSION);\n           exit(0);\n        }\n\n\t/* Common umask */\n\tumask(umask(077) | 022);\n\n\t/* Quick check */\n\tif (geteuid() != 0) {\n\t\tfprintf(stderr, \"%s: must be superuser.\\n\", p);\n\t\texit(1);\n\t}\n\n\t/*\n\t *\tIs this telinit or init ?\n\t */\n\tisinit = (getpid() == 1);\n\tfor (f = 1; f < argc; f++) {\n\t\tif (!strcmp(argv[f], \"-i\") || !strcmp(argv[f], \"--init\")) {\n\t\t\tisinit = 1;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!isinit) exit(telinit(p, argc, argv));\n\n\t/*\n\t *\tCheck for re-exec\n\t */ \t\n\tif (check_pipe(STATE_PIPE)) {\n\n\t\treceive_state(STATE_PIPE);\n\n\t\tmyname = istrdup(argv[0]);\n\t\targv0 = argv[0];\n\t\tmaxproclen = 0;\n\t\tfor (f = 0; f < argc; f++)\n\t\t\tmaxproclen += strlen(argv[f]) + 1;\n\t\treload = 1;\n\t\tsetproctitle(\"init [%c]\", (int)runlevel);\n\n\t\tinit_main();\n\t}\n\n  \t/* Check command line arguments */\n\tmaxproclen = strlen(argv[0]) + 1;\n  \tfor(f = 1; f < argc; f++) {\n\t\tif (!strcmp(argv[f], \"single\") || !strcmp(argv[f], \"-s\"))\n\t\t\tdfl_level = 'S';\n\t\telse if (!strcmp(argv[f], \"-a\") || !strcmp(argv[f], \"auto\"))\n\t\t\tputenv(\"AUTOBOOT=YES\");\n\t\telse if (!strcmp(argv[f], \"-b\") || !strcmp(argv[f],\"emergency\"))\n\t\t\temerg_shell = 1;\n\t\telse if (!strcmp(argv[f], \"-z\")) {\n\t\t\t/* Ignore -z xxx */\n\t\t\tif (argv[f + 1]) f++;\n\t\t} else if (strchr(\"0123456789sS\", argv[f][0])\n\t\t\t&& strlen(argv[f]) == 1)\n\t\t\tdfl_level = argv[f][0];\n\t\t/* \"init u\" in the very beginning makes no sense */\n\t\tif (dfl_level == 's') dfl_level = 'S';\n\t\tmaxproclen += strlen(argv[f]) + 1;\n\t}\n\n#ifdef WITH_SELINUX\n\tif (getenv(\"SELINUX_INIT\") == NULL) {\n         if (is_selinux_enabled() != 1) {\n\t    if (selinux_init_load_policy(&enforce) == 0) {\n             putenv(\"SELINUX_INIT=YES\");\n\t      execv(myname, argv);\n\t    } else {\n\t      if (enforce > 0) {\n\t\t/* SELinux in enforcing mode but load_policy failed */\n\t\t/* At this point, we probably can't open /dev/console, so log() won't work */\n\t\tfprintf(stderr,\"Unable to load SELinux Policy. Machine is in enforcing mode. Halting now.\\n\");\n\t\texit(1);\n\t      }\n\t    }\n\t  }\n\t}\n#endif  \n\t/* Start booting. */\n\targv0 = argv[0];\n\targv[1] = NULL;\n\tsetproctitle(\"init boot\");\n\tinit_main();\n\n\t/*NOTREACHED*/\n\treturn 0;\n}\n"
  },
  {
    "path": "src/init.h",
    "content": "/*\n * init.h\tSeveral defines and declarations to be\n *\t\tincluded by all modules of the init program.\n *\n * Version:\t@(#)init.h  2.85-5  02-Jul-2003  miquels@cistron.nl\n *\n * Copyright (C) 1998-2003 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n\n#ifndef TRUE\n#define TRUE 1\n#endif\n#ifndef FALSE\n#define FALSE 0\n#endif\n\n/* Standard configuration */\n#define CHANGE_WAIT 0\t\t\t/* Change runlevel while\n\t\t\t\t\t   waiting for a process to exit? */\n/* Debug and test modes */\n#define DEBUG\t   0\t\t\t/* Debug code off */\n#define INITDEBUG  0\t\t\t/* Fork at startup to debug init. */\n\n/* Some constants */\n#define INITPID\t   1\t\t\t/* pid of first process */\n#define PIPE_FD    10\t\t\t/* Fileno of initfifo. */\n#define STATE_PIPE 11\t\t\t/* used to pass state through exec */\n#define WAIT_BETWEEN_SIGNALS 3        /* default time to wait between TERM and KILL */\n\n/* Failsafe configuration */\n#define MAXSPAWN   10\t\t\t/* Max times respawned in.. */\n#define TESTTIME   120\t\t\t/* this much seconds */\n#define SLEEPTIME  300\t\t\t/* Disable time */\n\n/* Default path inherited by every child. */\n#define PATH_DEFAULT   \"/sbin:/usr/sbin:/bin:/usr/bin\"\n\n\n/* Prototypes. */\nvoid write_utmp_wtmp(char *user, char *id, int pid, int type, char *line);\nvoid write_wtmp(char *user, char *id, int pid, int type, char *line);\n#ifdef __GNUC__\n__attribute__ ((format (printf, 2, 3)))\n#endif\nvoid initlog(int loglevel, char *fmt, ...);\nvoid set_term(int how);\nvoid print(char *fmt);\n\n/* from dowall.c */\nvoid wall(const char *text, int remote);\n\n#if DEBUG\n#  define INITDBG(level, fmt, args...) initlog(level, fmt, ##args)\n#else\n#  define INITDBG(level, fmt, args...)\n#endif\n\n/* Actions to be taken by init */\n#define RESPAWN\t\t\t1\n#define WAIT\t\t\t2\n#define ONCE\t\t\t3\n#define\tBOOT\t\t\t4\n#define BOOTWAIT\t\t5\n#define POWERFAIL\t\t6\n#define POWERWAIT\t\t7\n#define POWEROKWAIT\t\t8\n#define CTRLALTDEL\t\t9\n#define OFF\t\t       10\n#define\tONDEMAND\t       11\n#define\tINITDEFAULT\t       12\n#define SYSINIT\t\t       13\n#define POWERFAILNOW           14\n#define KBREQUEST               15\n\n#define INITTAB_ID 8\n#define RUNLEVEL_LENGTH 12\n#define ACTION_LENGTH 33\n#define PROCESS_LENGTH 512\n\n/* Information about a process in the in-core inittab */\ntypedef struct _child_ {\n  int flags;\t\t\t/* Status of this entry */\n  int exstat;\t\t\t/* Exit status of process */\n  int pid;\t\t\t/* Pid of this process */\n  time_t tm;\t\t\t/* When respawned last */\n  int count;\t\t\t/* Times respawned in the last 2 minutes */\n  char id[INITTAB_ID];\t\t/* Inittab id (must be unique) */\n  char rlevel[RUNLEVEL_LENGTH];\t/* run levels */\n  int action;\t\t\t/* what to do (see list below) */\n  char process[PROCESS_LENGTH];\t/* The command line */\n  struct _child_ *new;\t\t/* New entry (after inittab re-read) */\n  struct _child_ *next;\t\t/* For the linked list */\n} CHILD;\n\n/* Values for the 'flags' field */\n#define RUNNING\t\t\t2\t/* Process is still running */\n#define KILLME\t\t\t4\t/* Kill this process */\n#define DEMAND\t\t\t8\t/* \"runlevels\" a b c */\n#define FAILING\t\t\t16\t/* process respawns rapidly */\n#define WAITING\t\t\t32\t/* We're waiting for this process */\n#define ZOMBIE\t\t\t64\t/* This process is already dead */\n#define XECUTED\t\t128\t/* Set if spawned once or more times */\n\n/* Log levels. */\n#define L_CO\t1\t\t/* Log on the console. */\n#define L_SY\t2\t\t/* Log with syslog() */\n#define L_VB\t(L_CO|L_SY)\t/* Log with both. */\n\n#ifndef NO_PROCESS\n#  define NO_PROCESS 0\n#endif\n\n/*\n *\tGlobal variables.\n */\nextern CHILD *family;\nextern int wrote_wtmp_reboot;\nextern int wrote_utmp_reboot;\nextern int wrote_wtmp_rlevel;\nextern int wrote_utmp_rlevel;\nextern char thislevel;\nextern char prevlevel;\n\n/* Tokens in state parser */\n#define C_VER\t\t1\n#define\tC_END\t\t2\n#define C_REC\t\t3\n#define\tC_EOR\t\t4\n#define\tC_LEV\t\t5\n#define C_FLAG\t\t6\n#define\tC_ACTION\t7\n#define C_PROCESS\t8\n#define C_PID\t\t9\n#define C_EXS\t       10\n#define C_EOF          -1\n#define D_RUNLEVEL     -2\n#define D_THISLEVEL    -3\n#define D_PREVLEVEL    -4\n#define D_GOTSIGN      -5\n#define D_WROTE_WTMP_REBOOT -6\n#define D_WROTE_UTMP_REBOOT -7\n#define D_SLTIME       -8\n#define D_DIDBOOT      -9\n#define D_WROTE_WTMP_RLEVEL -16\n#define D_WROTE_UTMP_RLEVEL -17\n\n#ifdef __FreeBSD__\n#define UTMP_FILE \"/var/run/utmp\"\n#define RUN_LVL 1\nstruct utmp\n{\n   char ut_id[4];\n};\n#endif\n\n"
  },
  {
    "path": "src/initreq.h",
    "content": "/*\n * initreq.h\tInterface to talk to init through /run/initctl.\n *\n *\t\tCopyright (C) 1995-2004 Miquel van Smoorenburg\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n * Version:     @(#)initreq.h  1.28  31-Mar-2004 MvS\n *\n */\n#ifndef _INITREQ_H\n#define _INITREQ_H\n\n#include <sys/param.h>\n\n#ifndef INIT_FIFO\n#define INIT_FIFO  \"/run/initctl\"\n#endif\n\n#define INIT_MAGIC 0x03091969\n#define INIT_CMD_START\t\t0\n#define INIT_CMD_RUNLVL\t\t1\n#define INIT_CMD_POWERFAIL\t2\n#define INIT_CMD_POWERFAILNOW\t3\n#define INIT_CMD_POWEROK\t4\n#define INIT_CMD_BSD\t\t5\n#define INIT_CMD_SETENV\t\t6\n#define INIT_CMD_UNSETENV\t7\n\n#ifdef MAXHOSTNAMELEN\n#  define INITRQ_HLEN\tMAXHOSTNAMELEN\n#else\n#  define INITRQ_HLEN\t64\n#endif\n\n/*\n *\tThis is what BSD 4.4 uses when talking to init.\n *\tLinux doesn't use this right now.\n */\nstruct init_request_bsd {\n\tchar\tgen_id[8];\t\t/* Beats me.. telnetd uses \"fe\" */\n\tchar\ttty_id[16];\t\t/* Tty name minus /dev/tty      */\n\tchar\thost[INITRQ_HLEN];\t/* Hostname                     */\n\tchar\tterm_type[16];\t\t/* Terminal type                */\n\tint\tsignal;\t\t\t/* Signal to send               */\n\tint\tpid;\t\t\t/* Process to send to           */\n\tchar\texec_name[128];\t        /* Program to execute           */\n\tchar\treserved[128];\t\t/* For future expansion.        */\n};\n\n\n/*\n *\tBecause of legacy interfaces, \"runlevel\" and \"sleeptime\"\n *\taren't in a separate struct in the union.\n *\n *\tThe weird sizes are because init expects the whole\n *\tstruct to be 384 bytes.\n */\nstruct init_request {\n\tint\tmagic;\t\t\t/* Magic number                 */\n\tint\tcmd;\t\t\t/* What kind of request         */\n\tint\trunlevel;\t\t/* Runlevel to change to        */\n\tint\tsleeptime;\t\t/* Time between TERM and KILL   */\n\tunion {\n\t\tstruct init_request_bsd\tbsd;\n\t\tchar\t\t\tdata[368];\n\t} i;\n};\n\n#endif\n"
  },
  {
    "path": "src/killall5.c",
    "content": "/*\n * killall5.c\tKill all processes except processes that have the\n *\t\tsame session id, so that the shell that called us\n *\t\twon't be killed. Typically used in shutdown scripts.\n *\n * pidof.c\tTries to get the pid of the process[es] named.\n *\n * Version:\t2.86 30-Jul-2004 MvS\n *\n * Usage:\tkillall5 [-][signal]\n *\t\tpidof [-s] [-o omitpid [-o omitpid]] program [program..]\n *\n * Authors:\tMiquel van Smoorenburg, miquels@cistron.nl\n *\n *\t\tRiku Meskanen, <mesrik@jyu.fi>\n *\t\t- return all running pids of given program name\n *\t\t- single shot '-s' option for backwards compatibility\n *\t\t- omit pid '-o' option and %PPID (parent pid metavariable)\n *\t\t- syslog() only if not a connected to controlling terminal\n *\t\t- swapped out programs pids are caught now\n *\n *\t\tWerner Fink\n *\t\t- make omit dynamic\n *\t\t- provide '-n' to skip stat(2) syscall on network based FS\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n#include <dirent.h>\n#include <errno.h>\n#include <getopt.h>\n#include <limits.h>\n#include <mntent.h>\n#include <stdarg.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <signal.h>\n#include <string.h>\n#include <syslog.h>\n#include <sys/mman.h>\n#include <sys/param.h>\n#include <sys/stat.h>\n#include <sys/types.h>\n#include <sys/wait.h>\n#include <unistd.h>\n\n#ifndef PATH_MAX\n#  ifdef MAXPATHLEN\n#    define PATH_MAX MAXPATHLEN\n#  else\n#    define PATH_MAX 2048\n#  endif\n#endif\n\n#define STATNAMELEN\t15\n\n/* Info about a process. */\ntypedef struct proc {\n\tchar *pathname;\t\t/* full path to executable        */\n\tchar *argv0;\t\t/* Name as found out from argv[0] */\n\tchar *argv0base;\t/* `basename argv[1]`\t\t  */\n\tchar *argv1;\t\t/* Name as found out from argv[1] */\n\tchar *argv1base;\t/* `basename argv[1]`\t\t  */\n\tchar *statname;\t\t/* the statname without braces    */\n\tpid_t pid;\t\t/* Process ID.\t\t\t  */\n\tpid_t sid;\t\t/* Session ID.\t\t\t  */\n\tchar kernel;\t\t/* Kernel thread or zombie.\t  */\n\tchar nfs;\t\t/* Name found on network FS.\t  */\n\tstruct proc *next;\t/* Pointer to next struct. \t  */\n} PROC;\n\n/* pid queue */\n\ntypedef struct pidq {\n\tPROC\t\t*proc;\n\tstruct pidq\t*next;\n} PIDQ;\n\ntypedef struct {\n\tPIDQ\t\t*head;\n\tPIDQ\t\t*tail;\n\tPIDQ\t\t*next;\n} PIDQ_HEAD;\n\ntypedef struct _s_omit {\n\tstruct _s_omit *next;\n\tstruct _s_omit *prev;\n\tpid_t pid;\n} OMIT;\n\ntypedef struct _s_shadow\n{\n\tstruct _s_shadow *next;\n\tstruct _s_shadow *prev;\n\tsize_t nlen;\n\tchar * name;\n} SHADOW;\n\ntypedef struct _s_nfs\n{\n\tstruct _s_nfs *next;\t/* Pointer to next struct. */\n\tstruct _s_nfs *prev;\t/* Pointer to previous st. */\n\tSHADOW *shadow;\t\t/* Pointer to shadows      */\n\tsize_t nlen;\n\tchar * name;\n} NFS;\n\n/* List of processes. */\nPROC *plist = NULL;\n\n/* List of processes to omit. */\nOMIT *omit = NULL;\n\n/* List of NFS mountes partitions. */\nNFS *nlist = NULL;\n\n/* Did we stop all processes ? */\nint sent_sigstop = 0;\nint scripts_too = 0;\n\n/* Should pidof try to list processes in I/O wait (D) and zombie (Z) states? */\n#ifndef FALSE\n#define FALSE 0\n#endif\n#ifndef TRUE\n#define TRUE 1\n#endif\nint list_dz_processes = FALSE;\n\nchar *progname;\t/* the name of the running program */\n#ifdef __GNUC__\n__attribute__ ((format (printf, 2, 3)))\n#endif\nvoid nsyslog(int pri, char *fmt, ...);\n\n#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)\n# ifndef  inline\n#  define inline\t__inline__\n# endif\n# ifndef  restrict\n#  define restrict\t__restrict__\n# endif\n#endif\n#define alignof(type)\t((sizeof(type)+(sizeof(void*)-1)) & ~(sizeof(void*)-1))\n\n/*\n *\tMalloc space, barf if out of memory.\n */\n#ifdef __GNUC__\nstatic void *xmalloc(size_t) __attribute__ ((__malloc__));\n#endif\nstatic void *xmalloc(size_t bytes)\n{\n\tvoid *p;\n\n\tif ((p = malloc(bytes)) == NULL) {\n\t\tif (sent_sigstop) kill(-1, SIGCONT);\n\t\tnsyslog(LOG_ERR, \"out of memory\");\n\t\texit(1);\n\t}\n\treturn p;\n}\n\n#ifdef __GNUC__\nstatic inline void xmemalign(void **, size_t, size_t) __attribute__ ((__nonnull__ (1)));\n#endif\nstatic inline void xmemalign(void **memptr, size_t alignment, size_t size)\n{\n\tif ((posix_memalign(memptr, alignment, size)) < 0) {\n\t\tif (sent_sigstop) kill(-1, SIGCONT);\n\t\tnsyslog(LOG_ERR, \"out of memory\");\n\t\texit(1);\n\t}\n}\n\n/*\n *\tSee if the proc filesystem is there. Mount if needed.\n */\nint mount_proc(void)\n{\n\tstruct stat\tst;\n\tchar\t\t*args[] = { \"mount\", \"-t\", \"proc\", \"proc\", \"/proc\", 0 };\n\tpid_t\t\tpid, rc;\n\tint\t\twst;\n\tint\t\tdid_mount = 0;\n\n\t/* Stat /proc/version to see if /proc is mounted. */\n\tif (stat(\"/proc/version\", &st) < 0 && errno == ENOENT) {\n\n\t\t/* It's not there, so mount it. */\n\t\tif ((pid = fork()) < 0) {\n\t\t\tnsyslog(LOG_ERR, \"cannot fork\");\n\t\t\texit(1);\n\t\t}\n\t\tif (pid == 0) {\n\t\t\t/* Try a few mount binaries. */\n\t\t\texecv(\"/bin/mount\", args);\n\t\t\texecv(\"/sbin/mount\", args);\n\n\t\t\t/* Okay, I give up. */\n\t\t\tnsyslog(LOG_ERR, \"cannot execute mount\");\n\t\t\texit(1);\n\t\t}\n\t\t/* Wait for child. */\n\t\twhile ((rc = wait(&wst)) != pid)\n\t\t\tif (rc < 0 && errno == ECHILD)\n\t\t\t\tbreak;\n\t\tif (rc != pid || WEXITSTATUS(wst) != 0)\n\t\t\tnsyslog(LOG_ERR, \"mount returned non-zero exit status\");\n\n\t\tdid_mount = 1;\n\t}\n\n\t/* See if mount succeeded. */\n\tif (stat(\"/proc/version\", &st) < 0) {\n\t\tif (errno == ENOENT)\n\t\t\tnsyslog(LOG_ERR, \"/proc not mounted, failed to mount.\");\n\t\telse\n\t\t\tnsyslog(LOG_ERR, \"/proc unavailable.\");\n\t\texit(1);\n\t}\n\n\treturn did_mount;\n}\n\nstatic inline int isnetfs(const char * type)\n{\n\tstatic const char* netfs[] = {\"nfs\", \"nfs4\", \"smbfs\", \"cifs\", \"afs\", \"ncpfs\", (char*)0};\n\tint n;\n\tfor (n = 0; netfs[n]; n++) {\n\t\tif (!strcasecmp(netfs[n], type))\n\t\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n/*\n *     Remember all NFS typed partitions.\n */\nvoid init_nfs(void)\n{\n        struct stat st;\n        struct mntent * ent;\n\tFILE * mnt;\n\n\tnlist = (NFS*)0;\n\n\tif (stat(\"/proc/version\", &st) < 0)\n\t\treturn;\n\tif ((mnt = setmntent(\"/proc/mounts\", \"r\")) == (FILE*)0)\n\t\treturn;\n\n\twhile ((ent = getmntent(mnt))) {\n\t\tif (isnetfs(ent->mnt_type)) {\n\t\t\tsize_t nlen = strlen(ent->mnt_dir);\n\t\t\tNFS *restrict p;\n\t\t\txmemalign((void*)&p, sizeof(void*), alignof(NFS)+(nlen+1));\n\t\t\tp->name = ((char*)p)+alignof(NFS);\n\t\t\tp->nlen = nlen;\n\t\t\tp->shadow = (SHADOW*)0;\n\n\t\t\tstrcpy(p->name, ent->mnt_dir);\n\t\t\tif (nlist)\n\t\t\t\tnlist->prev = p;\n\t\t\tp->next = nlist;\n\t\t\tp->prev = (NFS*)0;\n\t\t\tnlist = p;\n\t\t}\n\t}\n\tendmntent(mnt);\n\n\tif ((mnt = setmntent(\"/proc/mounts\", \"r\")) == (FILE*)0)\n\t\treturn;\n\n\twhile ((ent = getmntent(mnt))) {\n\t\tNFS *p;\n\n\t\tfor (p = nlist; p; p = p->next) {\n\t\t\tSHADOW * restrict s;\n\t\t\tsize_t nlen;\n\n\t\t\tif (strcmp(ent->mnt_dir, p->name) == 0)\n\t\t\t\tcontinue;\n\t\t\tif (strncmp(ent->mnt_dir, p->name, p->nlen) != 0)\n\t\t\t\tcontinue;\n\n\t\t\tnlen = strlen(ent->mnt_dir);\n\t\t\txmemalign((void*)&s, sizeof(void*), alignof(SHADOW)+(nlen+1));\n\t\t\ts->name = ((char*)s)+alignof(SHADOW);\n\t\t\ts->nlen = nlen;\n\n\t\t\tstrcpy(s->name, ent->mnt_dir);\n\t\t\tif (p->shadow)\n\t\t\t    p->shadow->prev = s;\n\t\t\ts->next = p->shadow;\n\t\t\ts->prev = (SHADOW*)0;\n\t\t\tp->shadow = s;\n\t\t}\n\t}\n\tendmntent(mnt);\n}\n\nstatic void clear_shadow(SHADOW *restrict shadow)\n{\n\tSHADOW *s, *n, *l;\n\n\tn = shadow;\n\tl = (SHADOW*)0;\n\tfor (s = shadow; n; s = n) {\n\t\tl = s->prev;\n\t\tn = s->next;\n\t\tif (s == shadow) {\n\t\t\tif (n) n->prev = (SHADOW*)0;\n\t\t\tshadow = n;\n\t\t} else if (l) {\n\t\t\tif (n) n->prev = l;\n\t\t\tl->next = n;\n\t\t}\n\t\tfree(s);\n\t}\n}\n\nstatic void clear_mnt(void)\n{\n\tNFS *p, *n, *l;\n\n\tn = nlist;\n\tl = (NFS*)0;\n\tfor (p = nlist; n; p = n) {\n\t\tl = p->prev;\n\t\tn = p->next;\n\t\tif (p == nlist) {\n\t\t\tif (n) n->prev = (NFS*)0;\n\t\t\tnlist = n;\n\t\t} else if (l) {\n\t\t\tif (n) n->prev = l;\n\t\t\tl->next = n;\n\t\t}\n\t\tif (p->shadow)\n\t\t\tclear_shadow(p->shadow);\n\t\tfree(p);\n\t}\n}\n\n/*\n *     Check if path is a shadow off a NFS partition.\n */\nstatic int shadow(SHADOW *restrict this, const char *restrict name, const size_t nlen)\n{\n\tSHADOW *s;\n\n\tif (!this)\n\t\tgoto out;\n\tfor (s = this; s; s = s->next) {\n\t\tif (nlen < s->nlen)\n\t\t\tcontinue;\n\t\tif (name[s->nlen] != '\\0' && name[s->nlen] != '/')\n\t\t\tcontinue;\n\t\tif (strncmp(name, s->name, s->nlen) == 0)\n\t\t\treturn 1;\n\t}\nout:\n\treturn 0;\n}\n\n/*\n * Get the maximal number of symlinks to follow.  Use sysconf() on\n * Hurd where the hardcoded value MAXSYMLINKS is not available.\n */\nstatic int maxsymlinks(void)\n{\n\tint v = sysconf(_SC_SYMLOOP_MAX);\n#ifdef MAXSYMLINKS\n\tif (v == -1)\n\t\treturn MAXSYMLINKS;\n#endif\n\treturn v;\n}\n\n/*\n *     Check path is located on a network based partition.\n */\nint check4nfs(const char * path, char * real)\n{\n\tchar buf[PATH_MAX+1];\n\tconst char *curr;\n\tint deep = maxsymlinks();\n\n\tif (!nlist) return 0;\n\n\tcurr = path;\n\tdo {\n\t\tconst char *prev;\n\t\tint len;\n\n\t\tif ((prev = strdupa(curr)) == NULL) {\n\t\t\tnsyslog(LOG_ERR, \"strdupa(): %s\\n\", strerror(errno));\n\t\t\treturn 0;\n\t\t}\n\n\t\terrno = 0;\n\t\tif ((len = readlink(curr, buf, PATH_MAX)) < 0)\n\t\t\tbreak;\n\t\tbuf[len] = '\\0';\n\n\t\tif (buf[0] != '/') {\n\t\t\tconst char *slash;\n\n\t\t\tif ((slash = strrchr(prev, '/'))) {\n\t\t\t\tsize_t off = slash - prev + 1;\n\n\t\t\t\tif (off + len > PATH_MAX)\n\t\t\t\t\tlen = PATH_MAX - off;\n\n\t\t\t\tmemmove(&buf[off], &buf[0], len + 1);\n\t\t\t\tmemcpy(&buf[0], prev, off);\n\t\t\t}\n\t\t}\n\t\tcurr = &buf[0];\n\n\t\tif (deep-- <= 0) return 0;\n\n\t} while (1);\n\n\tif (real)     /* real is defined elsewhere as being PATH_MAX + 1 */\n        {\n           memset(real, '\\0', PATH_MAX + 1);\n           strncpy(real, curr, PATH_MAX);\n        }\n\n\tif (errno == EINVAL) {\n\t\tconst size_t nlen = strlen(curr);\n\t\tNFS *p;\n\t\tfor (p = nlist; p; p = p->next) {\n\t\t\tif (nlen < p->nlen)\n\t\t\t\tcontinue;\n\t\t\tif (curr[p->nlen] != '\\0' && curr[p->nlen] != '/')\n\t\t\t\tcontinue;\n\t\t\tif (!strncmp(curr, p->name, p->nlen)) {\n\t\t\t\tif (shadow(p->shadow, curr, nlen))\n\t\t\t\t\tcontinue;\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0;\n}\n\nint readarg(FILE *fp, char *buf, int sz)\n{\n\tint\t\tc = 0, f = 0;\n\n\twhile (f < (sz-1) && (c = fgetc(fp)) != EOF && c)\n\t\tbuf[f++] = c;\n\tbuf[f] = 0;\n\n\treturn (c == EOF && f == 0) ? c : f;\n}\n\n/*\n *\tRead the proc filesystem.\n *\tCWD must be /proc to avoid problems if / is affected by the killing (ie depend on fuse).\n */\nint readproc()\n{\n\tDIR\t\t*dir;\n\tFILE\t\t*fp;\n\tPROC\t\t*p, *n;\n\tstruct dirent\t*d;\n\tchar\t\tpath[PATH_MAX+1];\n\tchar\t\tbuf[PATH_MAX+1];\n\tchar\t\t*s, *q;\n\tunsigned long\tstartcode, endcode;\n\tint\t\tpid, f;\n        char            process_status[11];\n\n\t/* Open the /proc directory. */\n\tif (chdir(\"/proc\") == -1) {\n\t\tnsyslog(LOG_ERR, \"chdir /proc failed\");\n\t\treturn -1;\n\t}\n\tif ((dir = opendir(\".\")) == NULL) {\n\t\tnsyslog(LOG_ERR, \"cannot opendir(/proc)\");\n\t\treturn -1;\n\t}\n\n\t/* Free the already existing process list. */\n\tn = plist;\n\tfor (p = plist; n; p = n) {\n\t\tn = p->next;\n\t\tif (p->argv0) free(p->argv0);\n\t\tif (p->argv1) free(p->argv1);\n\t\tif (p->statname) free(p->statname);\n\t\tif (p->pathname) free(p->pathname);\n\t\tfree(p);\n\t}\n\tplist = NULL;\n\n\t/* Walk through the directory. */\n\twhile ((d = readdir(dir)) != NULL) {\n\n\t\t/* See if this is a process */\n\t\tif ((pid = atoi(d->d_name)) == 0) continue;\n\n\t\t/* Get a PROC struct . */\n\t\tp = (PROC *)xmalloc(sizeof(PROC));\n\t\tmemset(p, 0, sizeof(PROC));\n\n\t\t/* Open the status file. */\n\t\tsnprintf(path, sizeof(path), \"%s/stat\", d->d_name);\n\n\t\t/* Read SID & statname from it. */\n\t\tif ((fp = fopen(path, \"r\")) != NULL) {\n\t\t\tsize_t len;\n\n\t\t\tlen = fread(buf, sizeof(char), sizeof(buf)-1, fp);\n\t\t\tbuf[len] = '\\0';\n\n\t\t\tif (buf[0] == '\\0') {\n\t\t\t\tnsyslog(LOG_ERR,\n\t\t\t\t\t\"can't read from %s\\n\", path);\n\t\t\t\tfclose(fp);\n\t\t\t\tfree(p);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t/* See if name starts with '(' */\n\t\t\ts = buf;\n\t\t\twhile (*s && *s != ' ') s++;\n\t\t\tif (*s) s++;\n\t\t\tif (*s == '(') {\n\t\t\t\t/* Read program name. */\n\t\t\t\tq = strrchr(buf, ')');\n\t\t\t\tif (q == NULL) {\n\t\t\t\t\tp->sid = 0;\n\t\t\t\t\tnsyslog(LOG_ERR,\n\t\t\t\t\t\"can't get program name from /proc/%s\\n\",\n\t\t\t\t\t\tpath);\n\t\t\t\t\tfclose(fp);\n\t\t\t\t\tif (p->argv0) free(p->argv0);\n\t\t\t\t\tif (p->argv1) free(p->argv1);\n\t\t\t\t\tif (p->statname) free(p->statname);\n\t\t\t\t\tif (p->pathname) free(p->pathname);\n\t\t\t\t\tfree(p);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ts++;\n\t\t\t} else {\n\t\t\t\tq = s;\n\t\t\t\twhile (*q && *q != ' ') q++;\n\t\t\t}\n\t\t\tif (*q) *q++ = 0;\n\t\t\twhile (*q == ' ') q++;\n\t\t\tp->statname = (char *)xmalloc(strlen(s)+1);\n\t\t\tstrcpy(p->statname, s);\n\n\t\t\t/* Get session, startcode, endcode. */\n\t\t\tstartcode = endcode = 0;\n\t\t\tif (sscanf(q,   \"%10s %*d %*d %d %*d %*d %*u %*u \"\n\t\t\t\t\t\"%*u %*u %*u %*u %*u %*d %*d \"\n\t\t\t\t\t\"%*d %*d %*d %*d %*u %*u %*d \"\n\t\t\t\t\t\"%*u %lu %lu\",\n\t\t\t\t\tprocess_status, \n\t\t\t\t\t&p->sid, &startcode, &endcode) != 4) {\n\n\t\t\t\tp->sid = 0;\n\t\t\t\tnsyslog(LOG_ERR, \"can't read sid from %s\\n\",\n\t\t\t\t\tpath);\n\t\t\t\tfclose(fp);\n\t\t\t\tif (p->argv0) free(p->argv0);\n\t\t\t\tif (p->argv1) free(p->argv1);\n\t\t\t\tif (p->statname) free(p->statname);\n\t\t\t\tfree(p->pathname);\n\t\t\t\tfree(p);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (startcode == 0 && endcode == 0)\n\t\t\t\tp->kernel = 1;\n\t\t\tfclose(fp);\n                        if ( (! list_dz_processes) &&\n                               (strchr(process_status, 'Z') != NULL) ) {\n                           /* Ignore zombie processes */\n                              if (p->argv0) free(p->argv0);\n                              if (p->argv1) free(p->argv1);\n                              if (p->statname) free(p->statname);\n                             free(p);\n                             continue;\n                        }\n\t\t} else {\n\t\t\t/* Process disappeared.. */\n\t\t\tif (p->argv0) free(p->argv0);\n\t\t\tif (p->argv1) free(p->argv1);\n\t\t\tif (p->statname) free(p->statname);\n\t\t\tif (p->pathname) free(p->pathname);\n\t\t\tfree(p);\n\t\t\tcontinue;\n\t\t}\n\n\t\tsnprintf(path, sizeof(path), \"%s/cmdline\", d->d_name);\n\t\tif ((fp = fopen(path, \"r\")) != NULL) {\n\n\t\t\t/* Now read argv[0] */\n\t\t\tf = readarg(fp, buf, sizeof(buf));\n\n\t\t\tif (buf[0]) {\n\t\t\t\t/* Store the name into malloced memory. */\n\t\t\t\tp->argv0 = (char *)xmalloc(f + 1);\n\t\t\t\tstrcpy(p->argv0, buf);\n\n\t\t\t\t/* Get a pointer to the basename. */\n\t\t\t\tp->argv0base = strrchr(p->argv0, '/');\n\t\t\t\tif (p->argv0base != NULL)\n\t\t\t\t\tp->argv0base++;\n\t\t\t\telse\n\t\t\t\t\tp->argv0base = p->argv0;\n\t\t\t}\n\n\t\t\t/* And read argv[1] */\n\t\t\twhile ((f = readarg(fp, buf, sizeof(buf))) != EOF)\n\t\t\t\tif (buf[0] != '-') break;\n\n\t\t\tif (buf[0]) {\n\t\t\t\t/* Store the name into malloced memory. */\n\t\t\t\tp->argv1 = (char *)xmalloc(f + 1);\n\t\t\t\tstrcpy(p->argv1, buf);\n\n\t\t\t\t/* Get a pointer to the basename. */\n\t\t\t\tp->argv1base = strrchr(p->argv1, '/');\n\t\t\t\tif (p->argv1base != NULL)\n\t\t\t\t\tp->argv1base++;\n\t\t\t\telse\n\t\t\t\t\tp->argv1base = p->argv1;\n\t\t\t}\n\n\t\t\tfclose(fp);\n\n\t\t} else {\n\t\t\t/* Process disappeared.. */\n\t\t\tif (p->argv0) free(p->argv0);\n\t\t\tif (p->argv1) free(p->argv1);\n\t\t\tif (p->statname) free(p->statname);\n\t\t\tif (p->pathname) free(p->pathname);\n\t\t\tfree(p);\n\t\t\tcontinue;\n\t\t}\n\n\t\t/* Try to stat the executable. */\n\t\tsnprintf(path, sizeof(path), \"/proc/%s/exe\", d->d_name);\n                p->pathname = (char *)xmalloc(PATH_MAX);\n                memset(p->pathname, 0, PATH_MAX);\n \t\tif (readlink(path, p->pathname, PATH_MAX) == -1) {\n \t\t\tp->pathname = NULL;\n \t\t}\n\n\t\t/* Link it into the list. */\n\t\tp->next = plist;\n\t\tplist = p;\n\t\tp->pid = pid;\n\t}\n\tclosedir(dir);\n\n\t/* Done. */\n\treturn 0;\n}\n\nPIDQ_HEAD *init_pid_q(PIDQ_HEAD *q)\n{\n\tq->head =  q->next = q->tail = NULL;\n\treturn q;\n}\n\nint empty_q(PIDQ_HEAD *q)\n{\n\treturn (q->head == NULL);\n}\n\nint add_pid_to_q(PIDQ_HEAD *q, PROC *p)\n{\n\tPIDQ *tmp;\n\n\ttmp = (PIDQ *)xmalloc(sizeof(PIDQ));\n\n\ttmp->proc = p;\n\ttmp->next = NULL;\n\n\tif (empty_q(q)) {\n\t\tq->head = tmp;\n\t\tq->tail  = tmp;\n\t} else {\n\t\tq->tail->next = tmp;\n\t\tq->tail = tmp;\n\t}\n\treturn 0;\n}\n\nPROC *get_next_from_pid_q(PIDQ_HEAD *q)\n{\n\tPROC\t\t*p;\n\tPIDQ\t\t*tmp = q->head;\n\n\tif (!empty_q(q)) {\n\t\tp = q->head->proc;\n\t\tq->head = tmp->next;\n\t\tfree(tmp);\n\t\treturn p;\n\t}\n\n\treturn NULL;\n}\n\n/* Try to get the process ID of a given process. */\nPIDQ_HEAD *pidof(char *prog)\n{\n\tPROC\t\t*p;\n\tPIDQ_HEAD\t*q;\n\tchar\t\t*s;\n\tint\t\tnfs = 0;\n\tint\t\tdostat = 0;\n\tint\t\tfoundone = 0;\n\tint\t\tok = 0;\n\tconst int\troot = (getuid() == 0);\n\tchar\t\treal_path[PATH_MAX+1];\n\n\tif (! prog)\n\t\treturn NULL;\n\n\t/* Try to stat the executable. */\n\tmemset(real_path, 0, sizeof(real_path));\n\tif ( (prog[0] == '/') && ( realpath(prog, real_path) ) ) {\n\t\tdostat++;\n\t}\n\n\t/* Get basename of program. */\n\tif ((s = strrchr(prog, '/')) == NULL)\n\t\ts = prog;\n\telse\n\t\ts++;\n\n\tif (! *s)\n\t\treturn NULL;\n\n\tq = (PIDQ_HEAD *)xmalloc(sizeof(PIDQ_HEAD));\n\tq = init_pid_q(q);\n\n\t/* First try to find a match based on dev/ino pair. */\n\tif (dostat) {\n\t\tfor (p = plist; p; p = p->next) {\n\t\t\tif (p->pathname && strcmp(real_path, p->pathname) == 0) {\n\t\t\t\tadd_pid_to_q(q, p);\n\t\t\t\tfoundone++;\n\t\t\t}\n                        else if ( (p->argv0) && (! strcmp(p->argv0, prog) ) )\n                        {\n                            add_pid_to_q(q, p);\n                            foundone++;\n                        }\n\t\t}\n\t}\n\n\t/* Second try to find a match based on full path name on\n\t * network FS located binaries */\n\tif (!foundone && nfs) {\n\t\tfor (p = plist; p; p = p->next) {\n\t\t\tif (!p->pathname)\n\t\t\t\tcontinue;\n\t\t\tif (!p->nfs)\n\t\t\t\tcontinue;\n\t\t\tif (strcmp(prog, p->pathname) != 0)\n\t\t\t\tcontinue;\n\t\t\tadd_pid_to_q(q, p);\n\t\t\tfoundone++;\n\t\t}\n\t}\n\n\t/* If we didn't find a match based on dev/ino, try the name. */\n\tif (!foundone) for (p = plist; p; p = p->next) {\n\t\tif (prog[0] == '/') {\n\t\t\tif (!p->pathname) {\n\t\t\t\tif (root)\n\t\t\t\t\tcontinue;\n\t\t\t\tgoto fallback; \n\t\t\t}\n\t\t\tif (strcmp(prog, p->pathname)) {\n\t\t\t\tint len = strlen(prog);\n\t\t\t\tif (strncmp(prog, p->pathname, len))\n\t\t\t\t{\n\t\t\t\t\tif (scripts_too)\n\t\t\t\t\t\tgoto fallback;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (strcmp(\" (deleted)\", p->pathname + len))\n\t\t\t\t{\n\t\t\t\t\tif (scripts_too)\n\t\t\t\t\t\tgoto fallback;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tadd_pid_to_q(q, p);\n\t\t\tcontinue;\n\t\t}\n\n\tfallback:\n\t\tok = 0;\n\n\t\t/*             matching        nonmatching\n\t\t * proc name   prog name       prog name\n\t\t * ---         -----------     ------------\n\t\t *   b         b, p/b, q/b\n\t\t * p/b         b, p/b          q/b\n\t\t *\n\t\t * Algorithm: Match if:\n\t\t *    cmd = arg\n\t\t * or cmd = base(arg)\n\t\t * or base(cmd) = arg\n\t\t *\n\t\t * Specifically, do not match just because base(cmd) = base(arg)\n\t\t * as was done in earlier versions of this program, since this\n\t\t * allows /aaa/foo to match /bbb/foo .\n\t\t */\n\n\t\tok |=\n\t\t\t(p->argv0 && strcmp(p->argv0, prog) == 0)\n\t\t\t|| (p->argv0 && s != prog && strcmp(p->argv0, s) == 0)\n\t\t\t|| (p->argv0base && strcmp(p->argv0base, prog) == 0);\n\n\t\t/* For scripts, compare argv[1] as well. */\n\t\tif (\n\t\t\tscripts_too && p->statname && p->argv1base\n\t\t\t&& !strncmp(p->statname, p->argv1base, STATNAMELEN)\n\t\t) {\n\t\t\tok |=\n\t\t\t\t(p->argv1 && strcmp(p->argv1, prog) == 0)\n\t\t\t\t|| (p->argv1 && s != prog && strcmp(p->argv1, s) == 0)\n\t\t\t\t|| (p->argv1base && strcmp(p->argv1base, prog) == 0);\n\t\t}\n\n\t\t/*\n\t\t *\tif we have a space in argv0, process probably\n\t\t *\tused setproctitle so try statname.\n\t\t */\n\t\tif (strlen(s) <= STATNAMELEN &&\n\t\t    (p->argv0 == NULL ||\n\t\t     p->argv0[0] == 0 ||\n\t\t     strchr(p->argv0, ' '))) {\n\t\t\tok |= (strcmp(p->statname, s) == 0);\n\t\t}\n\n\t\t/*\n\t\t *\tif we have a `-' as the first character, process\n\t\t *\tprobably used as a login shell\n\t\t */\n\t\tif (strlen(s) <= STATNAMELEN &&\n\t\t    p->argv1 == NULL &&\n\t\t    (p->argv0 != NULL &&\n\t\t     p->argv0[0] == '-')) {\n\t\t\tok |= (strcmp(p->statname, s) == 0);\n\t\t}\n\n\t\tif (ok) add_pid_to_q(q, p);\n\t}\n\n\treturn q;\n}\n\n/* Give usage message and exit. */\nvoid usage(void)\n{\n\tnsyslog(LOG_ERR, \"usage: killall5 -signum [-o omitpid] [-o omitpid] ...\");\n\tcloselog();\n\texit(1);\n}\n\n\nvoid pidof_usage(void)\n{\n   printf(\"pidof usage: [options] <program-name>\\n\\n\");\n   printf(\" -c           Return PIDs with the same root directory\\n\");\n   printf(\" -d <sep>     Use the provided character as output separator\\n\");\n   printf(\" -h           Display this help text\\n\");\n   printf(\" -n           Avoid using stat system function on network shares\\n\");\n   printf(\" -o <pid>     Omit results with a given PID\\n\");\n   printf(\" -q           Quiet mode. Do not display output\\n\");\n   printf(\" -s           Only return one PID\\n\");\n   printf(\" -x           Return PIDs of shells running scripts with a matching name\\n\");\n   printf(\" -z           List zombie and I/O waiting processes. May cause pidof to hang.\\n\");\n   printf(\"\\n\");\n}\n\n\n/* write to syslog file if not open terminal */\n#ifdef __GNUC__\n__attribute__ ((format (printf, 2, 3)))\n#endif\nvoid nsyslog(int pri, char *fmt, ...)\n{\n\tva_list  args;\n\n\tva_start(args, fmt);\n\n\tif (ttyname(0) == NULL) {\n\t\tvsyslog(pri, fmt, args);\n\t} else {\n\t\tfprintf(stderr, \"%s: \",progname);\n\t\tvfprintf(stderr, fmt, args);\n\t\tfprintf(stderr, \"\\n\");\n\t}\n\n\tva_end(args);\n}\n\n#define PIDOF_SINGLE\t0x01\n#define PIDOF_OMIT\t0x02\n#define PIDOF_NETFS\t0x04\n#define PIDOF_QUIET     0x08\n\n/*\n *\tPidof functionality.\n */\nint main_pidof(int argc, char **argv)\n{\n\tPIDQ_HEAD\t*q;\n\tPROC\t\t*p;\n\tchar\t\t*token, *here;\n\tint\t\tf;\n\tint\t\tfirst = 1;\n\tint\t\topt, flags = 0;\n\tint\t\tchroot_check = 0;\n\tstruct stat\tst;\n\tchar\t\ttmp[512];\n        char            sep = ' ';\n\n\tomit = (OMIT*)0;\n\tnlist = (NFS*)0;\n\topterr = 0;\n\n\tif ((token = getenv(\"PIDOF_NETFS\")) && (strcmp(token,\"no\") != 0))\n\t\tflags |= PIDOF_NETFS;\n\n\twhile ((opt = getopt(argc,argv,\"qhco:d:sxzn\")) != EOF) switch (opt) {\n\t\tcase '?':\n\t\t\tnsyslog(LOG_ERR,\"invalid options on command line!\\n\");\n\t\t\tcloselog();\n\t\t\texit(1);\n\t\tcase 'c':\n\t\t\tif (geteuid() == 0) chroot_check = 1;\n\t\t\tbreak;\n                case 'h':\n                        pidof_usage();\n                        exit(0);\n                case 'd':\n                        sep = optarg[0];\n                        break;\n\t\tcase 'o':\n\t\t\there = optarg;\n\t\t\twhile ((token = strsep(&here, \",;:\"))) {\n\t\t\t\tOMIT *restrict optr;\n\t\t\t\tpid_t opid;\n\n\t\t\t\tif (strcmp(\"%PPID\", token) == 0)\n\t\t\t\t\topid = getppid();\n\t\t\t\telse\n\t\t\t\t\topid = (pid_t)atoi(token);\n\n\t\t\t\tif (opid < 1) {\n\t\t\t\t\tnsyslog(LOG_ERR,\n\t\t\t\t\t\t\"illegal omit pid value \"\n\t\t\t\t\t\t\"(%s)!\\n\", token);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\txmemalign((void*)&optr, sizeof(void*), alignof(OMIT));\n\t\t\t\toptr->next = omit;\n\t\t\t\toptr->prev = (OMIT*)0;\n\t\t\t\toptr->pid  = opid;\n\t\t\t\tomit = optr;\n\t\t\t}\n\t\t\tflags |= PIDOF_OMIT;\n\t\t\tbreak;\n                case 'q':\n                        flags |= PIDOF_QUIET;\n                        break; \n\t\tcase 's':\n\t\t\tflags |= PIDOF_SINGLE;\n\t\t\tbreak;\n\t\tcase 'x':\n\t\t\tscripts_too++;\n\t\t\tbreak;\n                case 'z':\n                        list_dz_processes = TRUE;\n                        break;\n\t\tcase 'n':\n\t\t\tflags |= PIDOF_NETFS;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* Nothing */\n\t\t\tbreak;\n\t}\n\targc -= optind;\n\targv += optind;\n\n\t/* Check if we are in a chroot */\n\tif (chroot_check) {\n\t\tsnprintf(tmp, 512, \"/proc/%d/root\", getpid());\n\t\tif (stat(tmp, &st) < 0) {\n\t\t\tnsyslog(LOG_ERR, \"stat failed for %s!\\n\", tmp);\n\t\t\tcloselog();\n\t\t\texit(1);\n\t\t}\n\t}\n\n\tif (flags & PIDOF_NETFS)\n\t\tinit_nfs();\t\t/* Which network based FS are online? */\n\n\t/* Print out process-ID's one by one. */\n\treadproc();\n\n\tfor(f = 0; f < argc; f++) {\n\t\tif ((q = pidof(argv[f])) != NULL) {\n\t\t\tpid_t spid = 0;\n\t\t\twhile ((p = get_next_from_pid_q(q))) {\n\t\t\t\tif ((flags & PIDOF_OMIT) && omit) {\n\t\t\t\t\tOMIT * optr;\n\t\t\t\t\tfor (optr = omit; optr; optr = optr->next) {\n\t\t\t\t\t\tif (optr->pid == p->pid)\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\t\t *\tOn a match, continue with\n\t\t\t\t\t *\tthe for loop above.\n\t\t\t\t\t */\n\t\t\t\t\tif (optr)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (flags & PIDOF_SINGLE) {\n\t\t\t\t\tif (spid)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\telse\n\t\t\t\t\t\tspid = 1;\n\t\t\t\t}\n\t\t\t\tif (chroot_check) {\n\t\t\t\t\tstruct stat st2;\n\t\t\t\t\tsnprintf(tmp, 512, \"/proc/%d/root\",\n\t\t\t\t\t\t p->pid);\n\t\t\t\t\tif (stat(tmp, &st2) < 0 ||\n\t\t\t\t\t    st.st_dev != st2.st_dev ||\n\t\t\t\t\t    st.st_ino != st2.st_ino) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( ~flags & PIDOF_QUIET ) {\n\t\t\t\t\tif (! first)\n\t\t\t\t\t\tprintf(\"%c\", sep);\n\t\t\t\t\tprintf(\"%d\", p->pid);\n\t\t\t\t}\n\t\t\t\tfirst = 0;\n\t\t\t}\n\t\t}\n\t}\n\tif (!first)\n        {\n            if ( ~flags & PIDOF_QUIET ) \n\t\tprintf(\"\\n\");\n        }\n\n\tclear_mnt();\n\n\tcloselog();\n\treturn(first ? 1 : 0);\n}\n\n/* Main for either killall or pidof. */\nint main(int argc, char **argv)\n{\n\tPROC\t\t*p;\n\tint\t\tpid, sid = -1;\n\tint\t\tsig = SIGKILL;\n\tint\t\tc;\n\n\t/* return non-zero if no process was killed */\n\tint\t\tretval = 2;\n\n\t/* Get program name. */\n\tif ((progname = strrchr(argv[0], '/')) == NULL)\n\t\tprogname = argv[0];\n\telse\n\t\tprogname++;\n\n\t/* Now connect to syslog. */\n\topenlog(progname, LOG_CONS|LOG_PID, LOG_DAEMON);\n\n\t/* Were we called as 'pidof' ? */\n\tif (strcmp(progname, \"pidof\") == 0)\n\t\treturn main_pidof(argc, argv);\n\n\t/* Right, so we are \"killall\". */\n\tomit = (OMIT*)0;\n\n\tif (argc > 1) {\n\t\tfor (c = 1; c < argc; c++) {\n\t\t\tif (argv[c][0] == '-') (argv[c])++;\n\t\t\tif (argv[c][0] == 'o') {\n\t\t\t\tchar * token, * here;\n\n\t\t\t\tif (++c >= argc)\n\t\t\t\t\tusage();\n\n\t\t\t\there = argv[c];\n\t\t\t\twhile ((token = strsep(&here, \",;:\"))) {\n\t\t\t\t\tOMIT *restrict optr;\n\t\t\t\t\tpid_t opid = (pid_t)atoi(token);\n\n\t\t\t\t\tif (opid < 1) {\n\t\t\t\t\t\tnsyslog(LOG_ERR,\n\t\t\t\t\t\t\t\"illegal omit pid value \"\n\t\t\t\t\t\t\t\"(%s)!\\n\", token);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\txmemalign((void*)&optr, sizeof(void*), alignof(OMIT));\n\t\t\t\t\toptr->next = omit;\n\t\t\t\t\toptr->prev = (OMIT*)0;\n\t\t\t\t\toptr->pid  = opid;\n\t\t\t\t\tomit = optr;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ((sig = atoi(argv[1])) <= 0 || sig > 31)\n\t\t\t\tusage();\n\t\t}\n\t}\n\n\t/* First get the /proc filesystem online. */\n\tmount_proc();\n\n\t/*\n\t *\tIgnoring SIGKILL and SIGSTOP do not make sense, but\n\t *\tsomeday kill(-1, sig) might kill ourself if we don't\n\t *\tdo this. This certainly is a valid concern for SIGTERM-\n\t *\tLinux 2.1 might send the calling process the signal too.\n\t */\n\tsignal(SIGTERM, SIG_IGN);\n\tsignal(SIGSTOP, SIG_IGN);\n\tsignal(SIGKILL, SIG_IGN);\n\n\t/* lock us into memory */\n\tmlockall(MCL_CURRENT | MCL_FUTURE);\n\n        /* Get our session ID and PID to make sure we do not kill ourselves or our session. */\n\tsid = (int)getsid(0);\n\tpid = (int)getpid();\n\n\t/* Now stop all processes, unless there are some we should omit. */\n        if (! omit)\n        {\n\t    kill(-1, SIGSTOP);\n\t    sent_sigstop = 1;\n        }\n\n\t/* Read /proc filesystem */\n\tif (readproc() < 0) {\n             if (sent_sigstop)\n\t\tkill(-1, SIGCONT);\n  \t     return(1);\n\t}\n\n\t/* Now kill all processes except init (pid 1) and our session. */\n\tfor (p = plist; p; p = p->next) {\n\t\tif (p->pid == 1 || p->pid == pid || p->sid == sid || p->kernel)\n\t\t\tcontinue;\n\n\t\tif (omit) {\n\t\t\tOMIT * optr;\n\t\t\tfor (optr = omit; optr; optr = optr->next) {\n\t\t\t\tif (optr->pid == p->pid)\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t/* On a match, continue with the for loop above. */\n\t\t\tif (optr)\n\t\t\t\tcontinue;\n\t\t}      /* end of skipping PIDs to omit */\n\n\t\tkill(p->pid, sig);\n\t\tretval = 0;\n\t}\n\n\t/* And let them continue. */\n        if (sent_sigstop)\n\t    kill(-1, SIGCONT);\n\n\t/* Done. */\n\tcloselog();\n\n\t/* Force the kernel to run the scheduler */\n\tusleep(1);\n\n\treturn retval;\n}\n"
  },
  {
    "path": "src/last.c",
    "content": "/*\n * last.c\tRe-implementation of the 'last' command, this time\n *\t\tfor Linux. Yes I know there is BSD last, but I\n *\t\tjust felt like writing this. No thanks :-).\n *\t\tAlso, this version gives lots more info (especially with -x)\n *\n * Author:\tMiquel van Smoorenburg, miquels@cistron.nl\n *\n * Version:\t@(#)last  2.85  30-Jul-2004  miquels@cistron.nl\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <fcntl.h>\n#include <time.h>\n#include <stdio.h>\n#include <ctype.h>\n#include <utmp.h>\n#include <errno.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <string.h>\n#include <signal.h>\n#include <getopt.h>\n#include <netinet/in.h>\n#include <netdb.h>\n#include <arpa/inet.h>\n#include \"oldutmp.h\"\n\n#ifndef SHUTDOWN_TIME\n#  define SHUTDOWN_TIME 254\n#endif\n\n#ifndef PATH_MAX\n#define PATH_MAX 2048\n#endif\n\nchar *Version = \"@(#) last 2.85 31-Apr-2004 miquels\";\n\n#define CHOP_DOMAIN\t0\t/* Define to chop off local domainname. */\n#define NEW_UTMP\t1\t/* Fancy & fast utmp read code. */\n#define UCHUNKSIZE\t16384\t/* How much we read at once. */\n\n/* Double linked list of struct utmp's */\nstruct utmplist {\n  struct utmp ut;\n  struct utmplist *next;\n  struct utmplist *prev;\n};\nstruct utmplist *utmplist = NULL;\n\n/* Types of listing */\n#define R_CRASH\t\t1 /* No logout record, system boot in between */\n#define R_DOWN\t\t2 /* System brought down in decent way */\n#define R_NORMAL\t3 /* Normal */\n#define R_NOW\t\t4 /* Still logged in */\n#define R_REBOOT\t5 /* Reboot record. */\n#define R_PHANTOM\t6 /* No logout record but session is stale. */\n#define R_TIMECHANGE\t7 /* NEW_TIME or OLD_TIME */\n\n/* Global variables */\nint maxrecs = 0;\t/* Maximum number of records to list. */\nint recsdone = 0;\t/* Number of records listed */\nint showhost = 1;\t/* Show hostname too? */\nint altlist = 0;\t/* Show hostname at the end. */\nint allow_long_username = 0;  /* Show usernames longer than 8 characters */\nint usedns = 0;\t\t/* Use DNS to lookup the hostname. */\nint useip = 0;\t\t/* Print IP address in number format */\nint fulltime = 0;\t/* Print full dates and times */\nint name_len = 8;\t/* Default print 8 characters of name */\nint domain_len = 16;\t/* Default print 16 characters of domain */\nint oldfmt = 0;\t\t/* Use old libc5 format? */\nchar **show = NULL;\t/* What do they want us to show */\nchar *ufile;\t\t/* Filename of this file */\ntime_t lastdate;\t/* Last date we've seen */\nchar *progname;\t\t/* Name of this program */\n#if CHOP_DOMAIN\nchar hostname[256];\t/* For gethostbyname() */\nchar *domainname;\t/* Our domainname. */\n#endif\n\n/*\n *\tConvert old utmp format to new.\n */\nvoid uconv(struct oldutmp *oldut, struct utmp *utn)\n{\n\tmemset(utn, 0, sizeof(struct utmp));\n\tutn->ut_type = oldut->ut_type;\n\tutn->ut_pid  = oldut->ut_pid;\n\tutn->ut_time = oldut->ut_oldtime;\n\tutn->ut_addr = oldut->ut_oldaddr;\n\tstrncpy(utn->ut_line, oldut->ut_line, OLD_LINESIZE);\n\tstrncpy(utn->ut_user, oldut->ut_user, OLD_NAMESIZE);\n\tstrncpy(utn->ut_host, oldut->ut_host, OLD_HOSTSIZE);\n}\n\n#if NEW_UTMP\n/*\n *\tRead one utmp entry, return in new format.\n *\tAutomatically reposition file pointer.\n */\nint uread(FILE *fp, struct utmp *u, int *quit)\n{\n\tstatic int utsize;\n\tstatic char buf[UCHUNKSIZE];\n\tchar tmp[1024];\n\tstatic off_t fpos;\n\tstatic int bpos;\n\tstruct oldutmp uto;\n\tint r;\n\toff_t o;\n\n\tif (quit == NULL && u != NULL) {\n\t\t/*\n\t\t *\tNormal read.\n\t\t */\n\t\tif (oldfmt) {\n\t\t\tr = fread(&uto, sizeof(uto), 1, fp);\n\t\t\tuconv(&uto, u);\n\t\t} else\n\t\t\tr = fread(u, sizeof(struct utmp), 1, fp);\n\t\treturn r;\n\t}\n\n\tif (u == NULL) {\n\t\t/*\n\t\t *\tInitialize and position.\n\t\t */\n\t\tutsize = oldfmt ? sizeof(uto) : sizeof(struct utmp);\n\t\tfseeko(fp, 0, SEEK_END);\n\t\tfpos = ftello(fp);\n\t\tif (fpos == 0)\n\t\t\treturn 0;\n\t\to = ((fpos - 1) / UCHUNKSIZE) * UCHUNKSIZE;\n\t\tif (fseeko(fp, o, SEEK_SET) < 0) {\n\t\t\tfprintf(stderr, \"%s: seek failed!\\n\", progname);\n\t\t\treturn 0;\n\t\t}\n\t\tbpos = (int)(fpos - o);\n\t\tif (fread(buf, bpos, 1, fp) != 1) {\n\t\t\tfprintf(stderr, \"%s: read failed!\\n\", progname);\n\t\t\treturn 0;\n\t\t}\n\t\tfpos = o;\n\t\treturn 1;\n\t}\n\n\t/*\n\t *\tRead one struct. From the buffer if possible.\n\t */\n\tbpos -= utsize;\n\tif (bpos >= 0) {\n\t\tif (oldfmt)\n\t\t\tuconv((struct oldutmp *)(buf + bpos), u);\n\t\telse\n\t\t\tmemcpy(u, buf + bpos, sizeof(struct utmp));\n\t\treturn 1;\n\t}\n\n\t/*\n\t *\tOops we went \"below\" the buffer. We should be able to\n\t *\tseek back UCHUNKSIZE bytes.\n\t */\n\tfpos -= UCHUNKSIZE;\n\tif (fpos < 0)\n\t\treturn 0;\n\n\t/*\n\t *\tCopy whatever is left in the buffer.\n\t */\n\tmemcpy(tmp + (-bpos), buf, utsize + bpos);\n\tif (fseeko(fp, fpos, SEEK_SET) < 0) {\n\t\tperror(\"fseek\");\n\t\treturn 0;\n\t}\n\n\t/*\n\t *\tRead another UCHUNKSIZE bytes.\n\t */\n\tif (fread(buf, UCHUNKSIZE, 1, fp) != 1) {\n\t\tperror(\"fread\");\n\t\treturn 0;\n\t}\n\n\t/*\n\t *\tThe end of the UCHUNKSIZE byte buffer should be the first\n\t *\tfew bytes of the current struct utmp.\n\t */\n\tmemcpy(tmp, buf + UCHUNKSIZE + bpos, -bpos);\n\tbpos += UCHUNKSIZE;\n\n\tif (oldfmt)\n\t\tuconv((struct oldutmp *)tmp, u);\n\telse\n\t\tmemcpy(u, tmp, sizeof(struct utmp));\n\n\treturn 1;\n}\n\n#else /* NEW_UTMP */\n\n/*\n *\tRead one utmp entry, return in new format.\n *\tAutomatically reposition file pointer.\n */\nint uread(FILE *fp, struct utmp *u, int *quit)\n{\n\tstruct oldutmp uto;\n\toff_t r;\n\n\tif (u == NULL) {\n\t\tr = oldfmt ? sizeof(struct oldutmp) : sizeof(struct utmp);\n\t\tfseek(fp, -1 * r, SEEK_END);\n\t\treturn 1;\n\t}\n\n\tif (!oldfmt) {\n\t\tr = fread(u, sizeof(struct utmp), 1, fp);\n\t\tif (r == 1) {\n\t\t\tif (fseeko(fp, -2 * sizeof(struct utmp), SEEK_CUR) < 0)\n\t\t\t\tif (quit) *quit = 1;\n\t\t}\n\t\treturn r;\n\t}\n\tr = fread(&uto, sizeof(struct oldutmp), 1, fp);\n\tif (r == 1) {\n\t\tif (fseeko(fp, -2 * sizeof(struct oldutmp), SEEK_CUR) < 0)\n\t\t\tif (quit) *quit = 1;\n\t\tuconv(&uto, u);\n\t}\n\n\treturn r;\n}\n#endif\n\n/*\n *\tTry to be smart about the location of the BTMP file\n */\n#ifndef BTMP_FILE\n#define BTMP_FILE getbtmp()\nchar *getbtmp()\n{\n\tstatic char btmp[PATH_MAX + 5];  /* max path + btmp + null terminator */\n\tchar *p;\n\n        memset(btmp, '\\0', PATH_MAX + 5);\n\tstrncpy(btmp, WTMP_FILE, PATH_MAX);\n\tif ((p = strrchr(btmp, '/')) == NULL)\n\t\tp = btmp;\n\telse\n\t\tp++;\n\t*p = 0;\n\tstrcat(btmp, \"btmp\");\n\treturn btmp;\n}\n#endif\n\n/*\n *\tPrint a short date.\n */\nchar *showdate()\n{\n\tchar *s = ctime(&lastdate);\n        char *p;\n\n\tif (s)\n        {\n          /* s[16] = 0; */\n          /* make sure string ends with a NULL. Do not assume string is 16 characters long. */\n          for (p = s; *p && *p != '\\n'; p++) \n             ;\n          *p = '\\0';\n        }\n        else\n          s = \" \";\n\treturn s;\n}\n\n/*\n *\tSIGINT handler\n */\nvoid int_handler()\n{\n\tprintf(\"Interrupted %s\\n\", showdate());\n\texit(1);\n}\n\n/*\n *\tSIGQUIT handler\n */\nvoid quit_handler()\n{\n\tprintf(\"Interrupted %s\\n\", showdate());\n\tsignal(SIGQUIT, quit_handler);\n}\n\n/*\n *\tGet the basename of a filename\n */\nchar *mybasename(char *s)\n{\n\tchar *p;\n\n\tif ((p = strrchr(s, '/')) != NULL)\n\t\tp++;\n\telse\n\t\tp = s;\n\treturn p;\n}\n\n/*\n *\tLookup a host with DNS.\n */\nint dns_lookup(char *result, int size, int useip, int32_t *a)\n{\n\tstruct sockaddr_in\tsin;\n\tstruct sockaddr_in6\tsin6;\n\tstruct sockaddr\t\t*sa;\n\tint\t\t\tsalen, flags;\n\tint\t\t\tmapped = 0;\n\n\tflags = useip ? NI_NUMERICHOST : 0;\n\n\t/*\n\t *\tIPv4 or IPv6 ?\n\t *\t1. If last 3 4bytes are 0, must be IPv4\n\t *\t2. If IPv6 in IPv4, handle as IPv4\n\t *\t3. Anything else is IPv6\n\t *\n\t *\tUgly.\n\t */\n\tif (a[0] == 0 && a[1] == 0 && a[2] == (int32_t)htonl (0xffff))\n\t\tmapped = 1;\n\n\tif (mapped || (a[1] == 0 && a[2] == 0 && a[3] == 0)) {\n\t\t/* IPv4 */\n\t\tsin.sin_family = AF_INET;\n\t\tsin.sin_port = 0;\n\t\tsin.sin_addr.s_addr = mapped ? a[3] : a[0];\n\t\tsa = (struct sockaddr *)&sin;\n\t\tsalen = sizeof(sin);\n\t} else {\n\t\t/* IPv6 */\n\t\tmemset(&sin6, 0, sizeof(sin6));\n\t\tsin6.sin6_family = AF_INET6;\n\t\tsin6.sin6_port = 0;\n\t\tmemcpy(sin6.sin6_addr.s6_addr, a, 16);\n\t\tsa = (struct sockaddr *)&sin6;\n\t\tsalen = sizeof(sin6);\n\t}\n\n\treturn getnameinfo(sa, salen, result, size, NULL, 0, flags);\n}\n\n/*\n *\tShow one line of information on screen\n */\nint list(struct utmp *p, time_t t, int what)\n{\n\ttime_t\t\tsecs, tmp;\n\tchar\t\tlogintime[32];\n\tchar\t\tlogouttime[32];\n\tchar\t\tlength[32];\n\tchar\t\tfinal[512];\n\tchar\t\tutline[UT_LINESIZE+1];\n\tchar\t\tdomain[256];\n\tchar\t\t*s, **walk;\n        char            *my_ctime;\n\tint\t\tmins, hours, days;\n\tint\t\tr, len;\n\n\t/*\n\t *\tuucp and ftp have special-type entries\n\t */\n\tutline[0] = 0;\n\tstrncat(utline, p->ut_line, UT_LINESIZE);\n\tif (strncmp(utline, \"ftp\", 3) == 0 && isdigit(utline[3]))\n\t\tutline[3] = 0;\n\tif (strncmp(utline, \"uucp\", 4) == 0 && isdigit(utline[4]))\n\t\tutline[4] = 0;\n\n\t/*\n\t *\tIs this something we wanna show?\n\t */\n\tif (show) {\n\t\tfor (walk = show; *walk; walk++) {\n\t\t\tif (strncmp(p->ut_name, *walk, UT_NAMESIZE) == 0 ||\n\t\t\t    strcmp(utline, *walk) == 0 ||\n\t\t\t    (strncmp(utline, \"tty\", 3) == 0 &&\n\t\t\t     strcmp(utline + 3, *walk) == 0)) break;\n\t\t}\n\t\tif (*walk == NULL) return 0;\n\t}\n\n\t/*\n\t *\tCalculate times\n\t */\n\ttmp = (time_t)p->ut_time;\n        my_ctime = ctime(&tmp);\n        if (! my_ctime)\n           my_ctime = \"             \";\n\tstrncpy(logintime, my_ctime, sizeof(logintime));\n\tlogintime[sizeof(logintime)-1] = 0; /* enforce null termination */\n\tif (fulltime)\n\t\tsprintf(logouttime, \"- %s\", my_ctime);\n\telse {\n\t\tlogintime[16] = 0;\n\t\tsprintf(logouttime, \"- %s\", my_ctime + 11);\n\t\tlogouttime[7] = 0;\n\t}\n\tsecs = t - p->ut_time;\n\tmins  = (secs / 60) % 60;\n\thours = (secs / 3600) % 24;\n\tdays  = secs / 86400;\n\tif (days)\n\t\tsprintf(length, \"(%d+%02d:%02d)\", days, hours, mins);\n\telse\n\t\tsprintf(length, \" (%02d:%02d)\", hours, mins);\n\n\tswitch(what) {\n\t\tcase R_CRASH:\n\t\t\tsprintf(logouttime, \"- crash\");\n\t\t\tbreak;\n\t\tcase R_DOWN:\n\t\t\tsprintf(logouttime, \"- down \");\n\t\t\tbreak;\n\t\tcase R_NOW:\n\t\t\tlength[0] = 0;\n\t\t\tif (fulltime)\n\t\t\t\tsprintf(logouttime, \"  still logged in\");\n\t\t\telse {\n\t\t\t\tsprintf(logouttime, \"  still\");\n\t\t\t\tsprintf(length, \"logged in\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase R_PHANTOM:\n\t\t\tlength[0] = 0;\n\t\t\tif (fulltime)\n\t\t\t\tsprintf(logouttime, \"  gone - no logout\");\n\t\t\telse {\n\t\t\t\tsprintf(logouttime, \"   gone\");\n\t\t\t\tsprintf(length, \"- no logout\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase R_REBOOT:\n\t\t\tbreak;\n\t\tcase R_TIMECHANGE:\n\t\t\tlogouttime[0] = 0;\n\t\t\tlength[0] = 0;\n\t\t\tbreak;\n\t\tcase R_NORMAL:\n\t\t\tbreak;\n \t}\n\n\t/*\n\t *\tLook up host with DNS if needed.\n\t */\n\tr = -1;\n\tif (usedns || useip)\n\t\tr = dns_lookup(domain, sizeof(domain), useip, p->ut_addr_v6);\n\tif (r < 0) {\n\t\tlen = UT_HOSTSIZE;\n\t\tif (len >= (int)sizeof(domain)) len = sizeof(domain) - 1;\n\t\tdomain[0] = 0;\n\t\tstrncat(domain, p->ut_host, len);\n\t}\n\n\tif (showhost) {\n#if CHOP_DOMAIN\n\t\t/*\n\t\t *\tSee if this is in our domain.\n\t\t */\n\t\tif (!usedns && (s = strchr(p->ut_host, '.')) != NULL &&\n\t\t     strcmp(s + 1, domainname) == 0) *s = 0;\n#endif\n#define str(s) # s\n#define xstr(s) str(s)\n\t\tif (!altlist) {\n                    if (allow_long_username)  \n                    {\n                       len = snprintf(final, sizeof(final),\n\t\toldfmt ? \"%-\" xstr(OLD_NAMESIZE) \".\" xstr(OLD_NAMESIZE) \"s %-12.12s \"\n\t\t\"%-16.16s %-16.16s %-7.7s %-12.12s\\n\"\n                : \"%-\" xstr(UT_NAMESIZE) \".\" xstr(UT_NAMESIZE) \"s %-12.12s \"\n\t\t\"%-16.16s %-16.16s %-7.7s %-12.12s\\n\",\n \t\t\t\tp->ut_name, utline,\n \t\t\t\tdomain, logintime, logouttime, length);\n                    }\n                    else  /* show short username */\n                    {\n\t\t\tlen = snprintf(final, sizeof(final),\n\t\t\t\tfulltime ?\n\t\t\t     \"%-8.*s %-12.12s %-16.*s %-24.24s %-26.26s %-12.12s\\n\" :\n\t\t\t\t\"%-8.*s %-12.12s %-16.*s %-16.16s %-7.7s %-12.12s\\n\",\n\t\t\t\tname_len, p->ut_name, utline,\n\t\t\t\tdomain_len, domain, logintime, logouttime, length);\n                    }   /* show short username */\n\t\t} else {\n                     if (allow_long_username)\n                     {\n                         len = snprintf(final, sizeof(final), \n\t\toldfmt ? \"%-\" xstr(OLD_NAMESIZE) \".\" xstr(OLD_NAMESIZE) \"s %-12.12s \"\n\t\t\"%-16.16s %-7.7s %-16.16s %s\\n\"\n\t        : \"%-\" xstr(UT_NAMESIZE) \".\" xstr(UT_NAMESIZE) \"s %-12.12s \"\n\t\t\"%-16.16s %-7.7s %-16.16s %s\\n\",\n \t\t\t\tp->ut_name, utline,\n \t\t\t\tlogintime, logouttime, length, domain);\n                     }\n                     else   /* show short username */\n                     {\n\t\t\tlen = snprintf(final, sizeof(final), \n\t\t\t\tfulltime ?\n\t\t\t\t\"%-8.*s %-12.12s %-24.24s %-26.26s %-12.12s %s\\n\" :\n\t\t\t\t\"%-8.*s %-12.12s %-16.16s %-7.7s %-12.12s %s\\n\",\n\t\t\t\tname_len, p->ut_name, utline,\n\t\t\t\tlogintime, logouttime, length, domain);\n                     }   /* done showing short username */\n\t\t}\n\t} else\n             if (allow_long_username)\n             {\n                  len = snprintf(final, sizeof(final),\n  \t\toldfmt ? \"%-\" xstr(OLD_NAMESIZE) \".\" xstr(OLD_NAMESIZE) \"s %-12.12s \"\n\t\t\"%-16.16s %-7.7s %-12.12s\\n\"\n\t\t   : \"%-\" xstr(UT_NAMESIZE) \".\" xstr(UT_NAMESIZE) \"s %-12.12s \"\n\t\t\"%-16.16s %-7.7s %-12.12s\\n\",\n \t\t\tp->ut_name, utline,\n \t\t\tlogintime, logouttime, length);\n             }\n             else    /* show short username */\n             {\n\t\tlen = snprintf(final, sizeof(final),\n\t\t\tfulltime ?\n\t\t\t\"%-8.*s %-12.12s %-24.24s %-26.26s %-12.12s\\n\" :\n\t\t\t\"%-8.*s %-12.12s %-16.16s %-7.7s %-12.12s\\n\",\n\t\t\tname_len, p->ut_name, utline,\n\t\t\tlogintime, logouttime, length);\n             }   /* end of showing short username */\n\n#if defined(__GLIBC__)\n#  if (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0)\n\tfinal[sizeof(final)-1] = '\\0';\n#  endif\n#endif\n\n\t/*\n\t *\tPrint out \"final\" string safely.\n\t */\n\tfor (s = final; *s; s++) {\n\t\tif (*s == '\\n' || (*s >= 32 && (unsigned char)*s <= 126))\n\t\t\tputchar(*s);\n\t\telse\n\t\t\tputchar('*');\n\t}\n\n\tif (len < 0 || (size_t)len >= sizeof(final))\n\t\tputchar('\\n');\n\n\trecsdone++;\n\tif (maxrecs && recsdone >= maxrecs)\n\t\treturn 1;\n\n\treturn 0;\n}\n\n\n/*\n *\tshow usage\n */\nvoid usage(char *s)\n{\n\tfprintf(stderr, \"Usage: %s [-num | -n num] [-f file] \"\n\t\t\t\"[-t YYYYMMDDHHMMSS] \"\n\t\t\t\"[-R] [-adioxFw] [username..] [tty..]\\n\", s);\n\texit(1);\n}\n\ntime_t parsetm(char *ts)\n{\n\tstruct tm\tu, origu;\n\ttime_t\t\ttm;\n\n\tmemset(&tm, 0, sizeof(tm));\n\n\tif (sscanf(ts, \"%4d%2d%2d%2d%2d%2d\", &u.tm_year,\n\t    &u.tm_mon, &u.tm_mday, &u.tm_hour, &u.tm_min,\n\t    &u.tm_sec) != 6)\n\t\treturn (time_t)-1;\n\n\tu.tm_year -= 1900;\n\tu.tm_mon -= 1;\n\tu.tm_isdst = -1;\n\n\torigu = u;\n\n\tif ((tm = mktime(&u)) == (time_t)-1)\n\t\treturn tm;\n\n\t/*\n\t *\tUnfortunately mktime() is much more forgiving than\n\t *\tit should be.  For example, it'll gladly accept\n\t *\t\"30\" as a valid month number.  This behavior is by\n\t *\tdesign, but we don't like it, so we want to detect\n\t *\tit and complain.\n\t */\n\tif (u.tm_year != origu.tm_year ||\n\t    u.tm_mon != origu.tm_mon ||\n\t    u.tm_mday != origu.tm_mday ||\n\t    u.tm_hour != origu.tm_hour ||\n\t    u.tm_min != origu.tm_min ||\n\t    u.tm_sec != origu.tm_sec)\n\t\treturn (time_t)-1;\n\n\treturn tm;\n}\n\nint main(int argc, char **argv)\n{\n  FILE *fp;\t\t/* Filepointer of wtmp file */\n\n  struct utmp ut;\t/* Current utmp entry */\n  struct utmp oldut;\t/* Old utmp entry to check for duplicates */\n  struct utmplist *p;\t/* Pointer into utmplist */\n  struct utmplist *next;/* Pointer into utmplist */\n\n  time_t lastboot = 0;  /* Last boottime */\n  time_t lastrch = 0;\t/* Last run level change */\n  time_t lastdown;\t/* Last downtime */\n  time_t begintime;\t/* When wtmp begins */\n  int whydown = 0;\t/* Why we went down: crash or shutdown */\n\n  int c, x;\t\t/* Scratch */\n  struct stat st;\t/* To stat the [uw]tmp file */\n  int quit = 0;\t\t/* Flag */\n  int down = 0;\t\t/* Down flag */\n  int lastb = 0;\t/* Is this 'lastb' ? */\n  int extended = 0;\t/* Lots of info. */\n  char *altufile = NULL;/* Alternate wtmp */\n  char *my_ctime;\n  time_t until = 0;\t/* at what time to stop parsing the file */\n\n  progname = mybasename(argv[0]);\n\n  /* Process the arguments. */\n  while((c = getopt(argc, argv, \"f:n:RxadFliot:0123456789w\")) != EOF)\n    switch(c) {\n\tcase 'R':\n\t\tshowhost = 0;\n\t\tbreak;\n\tcase 'x':\n\t\textended = 1;\n\t\tbreak;\n\tcase 'n':\n\t\tmaxrecs = atoi(optarg);\n\t\tbreak;\n\tcase 'o':\n\t\toldfmt = 1;\n\t\tbreak;\n\tcase 'f':\n\t\tif((altufile = malloc(strlen(optarg)+1)) == NULL) {\n\t\t\tfprintf(stderr, \"%s: out of memory\\n\",\n\t\t\t\tprogname);\n\t\t\texit(1);\n\t\t}\n\t\tstrcpy(altufile, optarg);\n\t\tbreak;\n\tcase 'd':\n\t\tusedns++;\n\t\tbreak;\n\tcase 'i':\n\t\tuseip++;\n\t\tbreak;\n\tcase 'a':\n\t\taltlist++;\n\t\tbreak;\n\tcase 'F':\n\t\tfulltime++;\n\t\tbreak;\n        case 'l':\n                allow_long_username = 1;\n                break;\n\tcase 't':\n\t\tif ((until = parsetm(optarg)) == (time_t)-1) {\n\t\t\tfprintf(stderr, \"%s: Invalid time value \\\"%s\\\"\\n\",\n\t\t\t\tprogname, optarg);\n\t\t\tusage(progname);\n\t\t}\n\t\tbreak;\n\tcase 'w':\n\t\tif (UT_NAMESIZE > name_len)\n\t\t\tname_len = UT_NAMESIZE;\n\t\tif (UT_HOSTSIZE > domain_len)\n\t\t\tdomain_len = UT_HOSTSIZE;\n\t\tbreak;\n\tcase '0': case '1': case '2': case '3': case '4':\n\tcase '5': case '6': case '7': case '8': case '9':\n\t\tmaxrecs = 10*maxrecs + c - '0';\n\t\tbreak;\n\tdefault:\n\t\tusage(progname);\n\t\tbreak;\n    }\n  if (optind < argc) show = argv + optind;\n\n  /*\n   *\tWhich file do we want to read?\n   */\n  if (strcmp(progname, \"lastb\") == 0) {\n\tufile = BTMP_FILE;\n\tlastb = 1;\n  } else\n\tufile = WTMP_FILE;\n  if (altufile)\n\tufile = altufile;\n  time(&lastdown);\n  lastrch = lastdown;\n\n  /*\n   *\tFill in 'lastdate'\n   */\n  lastdate = lastdown;\n\n#if CHOP_DOMAIN\n  /*\n   *\tFind out domainname.\n   *\n   *\tThis doesn't work on modern systems, where only a DNS\n   *\tlookup of the result from hostname() will get you the domainname.\n   *\tRemember that domainname() is the NIS domainname, not DNS.\n   *\tSo basically this whole piece of code is bullshit.\n   */\n  hostname[0] = 0;\n  (void) gethostname(hostname, sizeof(hostname));\n  if ((domainname = strchr(hostname, '.')) != NULL) domainname++;\n  if (domainname == NULL || domainname[0] == 0) {\n\thostname[0] = 0;\n\t(void) getdomainname(hostname, sizeof(hostname));\n\thostname[sizeof(hostname) - 1] = 0;\n\tdomainname = hostname;\n\tif (strcmp(domainname, \"(none)\") == 0 || domainname[0] == 0)\n\t\tdomainname = NULL;\n  }\n#endif\n\n  /*\n   *\tInstall signal handlers\n   */\n  signal(SIGINT, int_handler);\n  signal(SIGQUIT, quit_handler);\n\n  /*\n   *\tOpen the utmp file\n   */\n  if ((fp = fopen(ufile, \"r\")) == NULL) {\n\tx = errno;\n\tfprintf(stderr, \"%s: %s: %s\\n\", progname, ufile, strerror(errno));\n\tif (altufile == NULL && x == ENOENT)\n\t\tfprintf(stderr, \"Perhaps this file was removed by the \"\n\t\t\t\"operator to prevent logging %s info.\\n\", progname);\n\texit(1);\n  }\n\n  /*\n   *\tOptimize the buffer size.\n   */\n  setvbuf(fp, NULL, _IOFBF, UCHUNKSIZE);\n\n  /*\n   *\tRead first structure to capture the time field\n   */\n  if (uread(fp, &ut, NULL) == 1)\n\tbegintime = ut.ut_time;\n  else {\n  \tfstat(fileno(fp), &st);\n\tbegintime = st.st_ctime;\n\tquit = 1;\n  }\n\n  /*\n   *\tGo to end of file minus one structure\n   *\tand/or initialize utmp reading code.\n   */\n  uread(fp, NULL, NULL);\n\n  /*\n   *\tRead struct after struct backwards from the file.\n   */\n  while(!quit) {\n\n\tif (uread(fp, &ut, &quit) != 1)\n\t\tbreak;\n\n\tif (until && until < ut.ut_time)\n\t\tcontinue;\n\n\tif (memcmp(&ut, &oldut, sizeof(struct utmp)) == 0) continue;\n\tmemcpy(&oldut, &ut, sizeof(struct utmp));\n\tlastdate = ut.ut_time;\n\n  \tif (lastb) {\n  \t\tquit = list(&ut, ut.ut_time, R_NORMAL);\n  \t\tcontinue;\n  \t}\n\n\t/*\n\t *\tSet ut_type to the correct type.\n\t */\n\tif (strncmp(ut.ut_line, \"~\", 1) == 0) {\n\t\tif (strncmp(ut.ut_user, \"shutdown\", 8) == 0)\n\t\t\tut.ut_type = SHUTDOWN_TIME;\n\t\telse if (strncmp(ut.ut_user, \"reboot\", 6) == 0)\n\t\t\tut.ut_type = BOOT_TIME;\n\t\telse if (strncmp(ut.ut_user, \"runlevel\", 8) == 0)\n\t\t\tut.ut_type = RUN_LVL;\n\t}\n#if 1 /*def COMPAT*/\n\t/*\n\t *\tFor stupid old applications that don't fill in\n\t *\tut_type correctly.\n\t */\n\telse {\n\t\tif (ut.ut_type != DEAD_PROCESS &&\n\t\t    ut.ut_name[0] && ut.ut_line[0] &&\n\t\t    strcmp(ut.ut_name, \"LOGIN\") != 0)\n\t\t\tut.ut_type = USER_PROCESS;\n\t\t/*\n\t\t *\tEven worse, applications that write ghost\n\t\t *\tentries: ut_type set to USER_PROCESS but\n\t\t *\tempty ut_name...\n\t\t */\n\t\tif (ut.ut_name[0] == 0)\n\t\t\tut.ut_type = DEAD_PROCESS;\n\n\t\t/*\n\t\t *\tClock changes.\n\t\t */\n\t\tif (strcmp(ut.ut_name, \"date\") == 0) {\n\t\t\tif (ut.ut_line[0] == '|') ut.ut_type = OLD_TIME;\n\t\t\tif (ut.ut_line[0] == '{') ut.ut_type = NEW_TIME;\n\t\t}\n\t}\n#endif\n\n\tswitch (ut.ut_type) {\n\t\tcase SHUTDOWN_TIME:\n\t\t\tif (extended) {\n\t\t\t\tstrncpy(ut.ut_line, \"system down\", OLD_LINESIZE - 1);\n\t\t\t\tquit = list(&ut, lastboot, R_NORMAL);\n\t\t\t}\n\t\t\tlastdown = lastrch = ut.ut_time;\n\t\t\tdown = 1;\n\t\t\tbreak;\n\t\tcase OLD_TIME:\n\t\tcase NEW_TIME:\n\t\t\tif (extended) {\n\t\t\t\tstrncpy(ut.ut_line,\n\t\t\t\tut.ut_type == NEW_TIME ? \"new time\" :\n\t\t\t\t\t\"old time\", OLD_LINESIZE - 1);\n\t\t\t\tquit = list(&ut, lastdown, R_TIMECHANGE);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase BOOT_TIME:\n\t\t\tstrncpy(ut.ut_line, \"system boot\", OLD_LINESIZE - 1);\n\t\t\tquit = list(&ut, lastdown, R_REBOOT);\n\t\t\tlastboot = ut.ut_time;\n\t\t\tdown = 1;\n\t\t\tbreak;\n\t\tcase RUN_LVL:\n\t\t\tx = ut.ut_pid & 255;\n\t\t\tif (extended) {\n\t\t\t\tsprintf(ut.ut_line, \"(to lvl %c)\", x);\n\t\t\t\tquit = list(&ut, lastrch, R_NORMAL);\n\t\t\t}\n\t\t\tif (x == '0' || x == '6') {\n\t\t\t\tlastdown = ut.ut_time;\n\t\t\t\tdown = 1;\n\t\t\t\tut.ut_type = SHUTDOWN_TIME;\n\t\t\t}\n\t\t\tlastrch = ut.ut_time;\n\t\t\tbreak;\n\n\t\tcase USER_PROCESS:\n\t\t\t/*\n\t\t\t *\tThis was a login - show the first matching\n\t\t\t *\tlogout record and delete all records with\n\t\t\t *\tthe same ut_line.\n\t\t\t */\n\t\t\tc = 0;\n\t\t\tfor (p = utmplist; p; p = next) {\n\t\t\t\tnext = p->next;\n\t\t\t\tif (strncmp(p->ut.ut_line, ut.ut_line,\n\t\t\t\t    UT_LINESIZE) == 0) {\n\t\t\t\t\t/* Show it */\n\t\t\t\t\tif (c == 0) {\n\t\t\t\t\t\tquit = list(&ut, p->ut.ut_time,\n\t\t\t\t\t\t\tR_NORMAL);\n\t\t\t\t\t\tc = 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (p->next) p->next->prev = p->prev;\n\t\t\t\t\tif (p->prev)\n\t\t\t\t\t\tp->prev->next = p->next;\n\t\t\t\t\telse\n\t\t\t\t\t\tutmplist = p->next;\n\t\t\t\t\tfree(p);\n\t\t\t\t}\n\t\t\t}\n\t\t\t/*\n\t\t\t *\tNot found? Then crashed, down, still\n\t\t\t *\tlogged in, or missing logout record.\n\t\t\t */\n\t\t\tif (c == 0) {\n\t\t\t\tif (lastboot == 0) {\n\t\t\t\t\tc = R_NOW;\n\t\t\t\t\t/* Is process still alive? */\n\t\t\t\t\tif (ut.ut_pid > 0 &&\n\t\t\t\t\t    kill(ut.ut_pid, 0) != 0 &&\n\t\t\t\t\t    errno == ESRCH)\n\t\t\t\t\t\tc = R_PHANTOM;\n\t\t\t\t} else\n\t\t\t\t\tc = whydown;\n\t\t\t\tquit = list(&ut, lastboot, c);\n\t\t\t}\n\t\t\t/* FALLTHRU */\n\n\t\tcase DEAD_PROCESS:\n\t\t\t/*\n\t\t\t *\tJust store the data if it is\n\t\t\t *\tinteresting enough.\n\t\t\t */\n\t\t\tif (ut.ut_line[0] == 0)\n\t\t\t\tbreak;\n\t\t\tif ((p = malloc(sizeof(struct utmplist))) == NULL) {\n\t\t\t\tfprintf(stderr, \"%s: out of memory\\n\",\n\t\t\t\t\tprogname);\n\t\t\t\texit(1);\n\t\t\t}\n\t\t\tmemcpy(&p->ut, &ut, sizeof(struct utmp));\n\t\t\tp->next  = utmplist;\n\t\t\tp->prev  = NULL;\n\t\t\tif (utmplist) utmplist->prev = p;\n\t\t\tutmplist = p;\n\t\t\tbreak;\n\n\t}\n\t/*\n\t *\tIf we saw a shutdown/reboot record we can remove\n\t *\tthe entire current utmplist.\n\t */\n\tif (down) {\n\t\tlastboot = ut.ut_time;\n\t\twhydown = (ut.ut_type == SHUTDOWN_TIME) ? R_DOWN : R_CRASH;\n\t\tfor (p = utmplist; p; p = next) {\n\t\t\tnext = p->next;\n\t\t\tfree(p);\n\t\t}\n\t\tutmplist = NULL;\n\t\tdown = 0;\n\t}\n  }\n  my_ctime = ctime(&begintime);\n  if (! my_ctime)\n     my_ctime = \" \";\n  printf(\"\\n%s begins %s\", mybasename(ufile), my_ctime);\n\n  fclose(fp);\n\n  /*\n   *\tShould we free memory here? Nah. This is not NT :)\n   */\n  return 0;\n}\n"
  },
  {
    "path": "src/logsave.c",
    "content": "/*\n * logsave.c --- A program which saves the output of a program until\n *\t/var/log is mounted.\n *\n * Copyright (C) 2003 Theodore Ts'o.\n *\n * %Begin-Header%\n * This file may be redistributed under the terms of the GNU Public\n * License.\n * %End-Header%\n */\n\n#ifndef _XOPEN_SOURCE\n#define _XOPEN_SOURCE 600 /* for inclusion of sa_handler in Solaris */\n#endif\n#ifndef HAVE_SIGNAL_H\n#define HAVE_SIGNAL_H\n#endif\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/wait.h>\n#include <fcntl.h>\n#include <time.h>\n#include <errno.h>\n#ifdef HAVE_SIGNAL_H\n#include <signal.h>\n#endif\n#ifdef HAVE_GETOPT_H\n#include <getopt.h>\n#else\nextern char *optarg;\nextern int optind;\n#endif\n\nstatic int\toutfd = -1;\nstatic int\toutbufsize = 0;\nstatic void\t*outbuf = 0;\nstatic int\tverbose = 0;\nstatic int\tdo_skip = 0;\nstatic int\tskip_mode = 0;\nstatic pid_t\tchild_pid = -1;\n\nstatic void usage(char *progname)\n{\n\tprintf(\"Usage: %s [-asv] logfile program\\n\", progname);\n\texit(1);\n}\n\n#define SEND_LOG\t0x01\n#define SEND_CONSOLE\t0x02\n#define SEND_BOTH\t0x03\n\n/*\n * Helper function that does the right thing if write returns a\n * partial write, or an EAGAIN/EINTR error.\n */\nstatic int write_all(int fd, const char *buf, size_t count)\n{\n\tssize_t ret;\n\tint c = 0;\n\n\twhile (count > 0) {\n\t\tret = write(fd, buf, count);\n\t\tif (ret < 0) {\n\t\t\tif ((errno == EAGAIN) || (errno == EINTR))\n\t\t\t\tcontinue;\n\t\t\treturn -1;\n\t\t}\n\t\tcount -= ret;\n\t\tbuf += ret;\n\t\tc += ret;\n\t}\n\treturn c;\n}\n\nstatic void send_output(const char *buffer, int c, int flag)\n{\n\tconst char\t*cp;\n\tchar\t\t*n;\n\tint\t\tcnt, d, del;\n\n\tif (c == 0)\n\t\tc = strlen(buffer);\n\n\tif (flag & SEND_CONSOLE) {\n\t\tcnt = c;\n\t\tcp = buffer;\n\t\twhile (cnt) {\n\t\t\tdel = 0;\n\t\t\tfor (d=0; d < cnt; d++) {\n\t\t\t\tif (skip_mode &&\n\t\t\t\t    (cp[d] == '\\001' || cp[d] == '\\002')) {\n\t\t\t\t\tdel = 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\twrite_all(1, cp, d);\n\t\t\tif (del)\n\t\t\t\td++;\n\t\t\tcnt -= d;\n\t\t\tcp += d;\n\t\t}\n\t}\n\tif (!(flag & SEND_LOG))\n\t\treturn;\n\tif (outfd > 0)\n\t\twrite_all(outfd, buffer, c);\n\telse {\n\t\tn = realloc(outbuf, outbufsize + c);\n\t\tif (n) {\n\t\t\toutbuf = n;\n\t\t\tmemcpy(((char *)outbuf)+outbufsize, buffer, c);\n\t\t\toutbufsize += c;\n\t\t}\n\t}\n}\n\nstatic int do_read(int fd)\n{\n\tint\tc;\n\tchar\tbuffer[4096], *cp, *sep;\n\n\tc = read(fd, buffer, sizeof(buffer)-1);\n\tif (c <= 0)\n\t\treturn c;\n\tif (do_skip) {\n\t\tsend_output(buffer, c, SEND_CONSOLE);\n\t\tbuffer[c] = 0;\n\t\tcp = buffer;\n\t\twhile (*cp) {\n\t\t\tif (skip_mode) {\n\t\t\t\tcp = strchr(cp, '\\002');\n\t\t\t\tif (!cp)\n\t\t\t\t\treturn 0;\n\t\t\t\tcp++;\n\t\t\t\tskip_mode = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tsep = strchr(cp, '\\001');\n\t\t\tif (sep)\n\t\t\t\t*sep = 0;\n\t\t\tsend_output(cp, 0, SEND_LOG);\n\t\t\tif (sep) {\n\t\t\t\tcp = sep + 1;\n\t\t\t\tskip_mode = 1;\n\t\t\t} else\n\t\t\t\tbreak;\n\t\t}\n\t} else\n\t\tsend_output(buffer, c, SEND_BOTH);\n\treturn c;\n}\n\nstatic void signal_term(int sig)\n{\n\tif (child_pid > 0)\n\t\tkill(child_pid, sig);\n}\n\nstatic int run_program(char **argv)\n{\n\tint\tfds[2];\n\tint\tstatus, rc, pid;\n\tchar\tbuffer[80];\n#ifdef HAVE_SIGNAL_H\n\tstruct sigaction\tsa;\n#endif\n\n\tif (pipe(fds) < 0) {\n\t\tperror(\"pipe\");\n\t\texit(1);\n\t}\n\n#ifdef HAVE_SIGNAL_H\n\tmemset(&sa, 0, sizeof(struct sigaction));\n\tsa.sa_handler = signal_term;\n\tsigaction(SIGINT, &sa, 0);\n\tsigaction(SIGTERM, &sa, 0);\n#ifdef SA_RESTART\n\tsa.sa_flags = SA_RESTART;\n#endif\n#endif\n\n\tpid = fork();\n\tif (pid < 0) {\n\t\tperror(\"vfork\");\n\t\texit(1);\n\t}\n\tif (pid == 0) {\n\t\tdup2(fds[1],1);\t\t/* fds[1] replaces stdout */\n\t\tdup2(fds[1],2);  \t/* fds[1] replaces stderr */\n\t\tclose(fds[0]);\t\t/* don't need this here */\n\t\tclose(fds[1]);\n\n\t\texecvp(argv[0], argv);\n\t\tperror(argv[0]);\n\t\texit(1);\n\t}\n\tchild_pid = pid;\n\tclose(fds[1]);\n\n\twhile (!(waitpid(pid, &status, WNOHANG ))) {\n\t\tdo_read(fds[0]);\n\t}\n\tchild_pid = -1;\n\tdo_read(fds[0]);\n\tclose(fds[0]);\n\n\tif ( WIFEXITED(status) ) {\n\t\trc = WEXITSTATUS(status);\n\t\tif (rc) {\n\t\t\tsend_output(argv[0], 0, SEND_BOTH);\n\t\t\tsprintf(buffer, \" exited with status code %d\\n\", rc);\n\t\t\tsend_output(buffer, 0, SEND_BOTH);\n\t\t}\n\t} else {\n\t\tif (WIFSIGNALED(status)) {\n\t\t\tsend_output(argv[0], 0, SEND_BOTH);\n\t\t\tsprintf(buffer, \"died with signal %d\\n\",\n\t\t\t\tWTERMSIG(status));\n\t\t\tsend_output(buffer, 0, SEND_BOTH);\n\t\t\treturn 1;\n\t\t}\n\t\trc = 0;\n\t}\n\treturn rc;\n}\n\nstatic int copy_from_stdin(void)\n{\n\tint\tc, bad_read = 0;\n\n\twhile (1) {\n\t\tc = do_read(0);\n\t\tif ((c == 0 ) ||\n\t\t    ((c < 0) && ((errno == EAGAIN) || (errno == EINTR)))) {\n\t\t\tif (bad_read++ > 3)\n\t\t\t\tbreak;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c < 0) {\n\t\t\tperror(\"read\");\n\t\t\texit(1);\n\t\t}\n\t\tbad_read = 0;\n\t}\n\treturn 0;\n}\n\n\n\nint main(int argc, char **argv)\n{\n\tint\tc, pid, rc;\n\tchar\t*outfn, **cpp;\n        char    *ctime_output;\n\tint\topenflags = O_CREAT|O_WRONLY|O_TRUNC;\n\tint\tsend_flag = SEND_LOG;\n\tint\tdo_stdin;\n\ttime_t\tt;\n\n\twhile ((c = getopt(argc, argv, \"+asv\")) != EOF) {\n\t\tswitch (c) {\n\t\tcase 'a':\n\t\t\topenflags &= ~O_TRUNC;\n\t\t\topenflags |= O_APPEND;\n\t\t\tbreak;\n\t\tcase 's':\n\t\t\tdo_skip = 1;\n\t\t\tbreak;\n\t\tcase 'v':\n\t\t\tverbose++;\n\t\t\tsend_flag |= SEND_CONSOLE;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (optind == argc || optind+1 == argc)\n\t\tusage(argv[0]);\n\toutfn = argv[optind];\n\toptind++;\n\targv += optind;\n\t/* argc -= optind;  - this is not used */\n\n\toutfd = open(outfn, openflags, 0644);\n\tdo_stdin = !strcmp(argv[0], \"-\");\n\n\tsend_output(\"Log of \", 0, send_flag);\n\tif (do_stdin)\n\t\tsend_output(\"stdin\", 0, send_flag);\n\telse {\n\t\tfor (cpp = argv; *cpp; cpp++) {\n\t\t\tsend_output(*cpp, 0, send_flag);\n\t\t\tsend_output(\" \", 0, send_flag);\n\t\t}\n\t}\n\tsend_output(\"\\n\", 0, send_flag);\n\tt = time(0);\n        ctime_output = ctime(&t);\n        if (! ctime_output)\n           ctime_output = \" \";\n\tsend_output(ctime_output, 0, send_flag);\n\tsend_output(\"\\n\", 0, send_flag);\n\n\tif (do_stdin)\n\t\trc = copy_from_stdin();\n\telse\n\t\trc = run_program(argv);\n\n\tsend_output(\"\\n\", 0, send_flag);\n\tt = time(0);\n        ctime_output = ctime(&t);\n        if (! ctime_output)\n           ctime_output = \" \";\n\tsend_output(ctime_output, 0, send_flag);\n\tsend_output(\"----------------\\n\", 0, send_flag);\n\n\tif (outbuf) {\n\t\tpid = fork();\n\t\tif (pid < 0) {\n\t\t\tperror(\"fork\");\n\t\t\texit(1);\n\t\t}\n\t\tif (pid) {\n\t\t\tif (verbose)\n\t\t\t\tprintf(\"Backgrounding to save %s later\\n\",\n\t\t\t\t       outfn);\n\t\t\texit(rc);\n\t\t}\n\t\tsetsid();\t/* To avoid getting killed by init */\n\t\twhile (outfd < 0) {\n\t\t\toutfd = open(outfn, openflags, 0644);\n\t\t\tsleep(1);\n\t\t}\n\t\twrite_all(outfd, outbuf, outbufsize);\n\t\tfree(outbuf);\n\t}\n\tif (outfd >= 0)\n\t\tclose(outfd);\n\n\texit(rc);\n}\n"
  },
  {
    "path": "src/mesg.c",
    "content": "/*\n * mesg.c\tThe \"mesg\" utility. Gives / restrict access to\n *\t\tyour terminal by others.\n *\n * Usage:\tmesg [y|n].\n *\t\tWithout arguments prints out the current settings.\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2001 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <errno.h>\n#include <unistd.h>\n#include <grp.h>\n\nchar *Version = \"@(#) mesg 2.81 31-Jul-2001 miquels@cistron.nl\";\n\n#define TTYGRP\t\t\"tty\"\n\n/*\n *\tSee if the system has a special 'tty' group.\n *\tIf it does, and the tty device is in that group,\n *\twe set the modes to -rw--w--- instead if -rw--w--w.\n */\nint hasttygrp(void)\n{\n\tstruct group *grp;\n\n\tif ((grp = getgrnam(TTYGRP)) != NULL)\n\t\treturn 1;\n\treturn 0;\n}\n\n\n/*\n *\tSee if the tty devices group is indeed 'tty'\n */\nint tty_in_ttygrp(struct stat *st)\n{\n\tstruct group *gr;\n\n\tif ((gr = getgrgid(st->st_gid)) == NULL)\n\t\treturn 0;\n\tif (strcmp(gr->gr_name, TTYGRP) != 0)\n\t\treturn 0;\n\n\treturn 1;\n}\n\nint main(int argc, char **argv)\n{\n\tstruct stat\tst;\n\tunsigned int\tttymode, st_mode_old;\n\tint\t\tht;\n\tint\t\tit;\n\tint\t\te;\n\n\tif (!isatty(0)) {\n\t\t/* Or should we look in /var/run/utmp? */\n\t\tfprintf(stderr, \"stdin: is not a tty\\n\");\n\t\treturn(1);\n\t}\n\n\tif (fstat(0, &st) < 0) {\n\t\tperror(\"fstat\");\n\t\treturn(1);\n\t}\n\n\tht = hasttygrp();\n\tit = tty_in_ttygrp(&st);\n\n\tif (argc < 2) {\n\t\tttymode = (ht && it) ? 020 : 002;\n\t\tprintf(\"is %s\\n\", (st.st_mode & ttymode) ? \"y\" : \"n\");\n\t\treturn 0;\n\t}\n\tif (argc > 2 || (argv[1][0] != 'y' && argv[1][0] != 'n')) {\n\t\tfprintf(stderr, \"Usage: mesg [y|n]\\n\");\n\t\treturn 1;\n\t}\n\n\t/*\n\t *\tSecurity check: allow mesg n when group is\n\t *\tweird, but don't allow mesg y.\n\t */\n\tttymode = ht ? 020 : 022;\n\tif (ht && !it && argv[1][0] == 'y') {\n\t\tfprintf(stderr, \"mesg: error: tty device is not owned \"\n\t\t\t\"by group `%s'\\n\", TTYGRP);\n\t\texit(1);\n\t}\n\n\tst_mode_old = st.st_mode;\n\tif (argv[1][0] == 'y')\n\t\tst.st_mode |= ttymode;\n\telse\n\t\tst.st_mode &= ~(ttymode);\n\tif (st_mode_old != st.st_mode && fchmod(0, st.st_mode) != 0) {\n\t\te = errno;\n\t\tfprintf(stderr, \"mesg: %s: %s\\n\",\n\t\t\tttyname(0), strerror(e));\n\t\texit(1);\n\t}\n\n\treturn 0;\n}\n"
  },
  {
    "path": "src/mountpoint.c",
    "content": "/*\n * mountpoint\tSee if a directory is a mountpoint.\n *\n * Author:\tMiquel van Smoorenburg.\n *\n * Version:\t@(#)mountpoint  2.85-12  17-Mar-2004\t miquels@cistron.nl\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <sys/stat.h>\n#include <unistd.h>\n#include <stdlib.h>\n#include <string.h>\n#include <errno.h>\n#include <stdarg.h>\n#include <getopt.h>\n#include <stdio.h>\n\n#if defined (__linux__) || defined(__GNU__)\n#include <sys/sysmacros.h>\n#endif\n\n#ifndef PATH_MAX\n#define PATH_MAX 2048\n#endif\n\nint dostat(char *path, struct stat *st, int do_lstat, int quiet)\n{\n\tint\t\tn;\n\n\tif (do_lstat)\n\t\tn = lstat(path, st);\n\telse\n\t\tn = stat(path, st);\n\n\tif (n != 0) {\n\t\tif (!quiet)\n\t\t\tfprintf(stderr, \"mountpoint: %s: %s\\n\", path,\n\t\t\t\tstrerror(errno));\n\t\treturn -1;\n\t}\n\treturn 0;\n}\n\n\n/*\nThis function checks to see if the passed path is listed in the\n/proc/mounts file. If /proc/mounts does not exist or cannot\nbe read, we return false. If the path is not found, we return false.\nIf the path is found we return true.\n*/\nint do_proc_check(char *path)\n{\n   FILE *mounts;\n   char *found = NULL, *status;\n   char *target_string;\n   char line[512];\n   int last_character;\n\n   target_string = (char *) calloc( strlen(path) + 3, sizeof(char));\n   if (! target_string)\n      return 0;\n\n   mounts = fopen(\"/proc/mounts\", \"r\");\n   if (! mounts)\n   {\n      free(target_string);\n      return 0;\n   }\n\n   /* copy path so we can adjust it without harming the original */\n   sprintf(target_string, \"%s\", path);\n   /* trim trailing slash */\n   last_character = strlen(target_string) - 1;\n   if ( (last_character >= 1) && (target_string[last_character] == '/') )\n        target_string[last_character] = '\\0';\n\n   /* Search for path name in /proc/mounts file */\n   status = fgets(line, 512, mounts);\n   while ( (status) && (! found) )\n   {\n       found = strstr(line, target_string);\n       if (! found)\n         status = fgets(line, 512, mounts);\n   }\n   fclose(mounts);\n   free(target_string);\n   return found ? 1 : 0;\n}\n\n\nvoid usage(void) {\n\tfprintf(stderr, \"Usage: mountpoint [-p] [-q] [-d] [-x] path\\n\");\n\texit(1);\n}\n\nint main(int argc, char **argv)\n{\n\tstruct stat\tst, st2;\n\tchar\t\tbuf[PATH_MAX + 1];\n\tchar\t\t*path;\n\tint\t\tquiet = 0;\n\tint\t\tshowdev = 0;\n\tint\t\txdev = 0;\n\tint\t\tc, r;\n        int             check_proc = 0;\n\n\twhile ((c = getopt(argc, argv, \"dpqx\")) != EOF) switch(c) {\n\t\tcase 'd':\n\t\t\tshowdev = 1;\n\t\t\tbreak;\n                case 'p':\n                        check_proc = 1;\n                        break;\n\t\tcase 'q':\n\t\t\tquiet = 1;\n\t\t\tbreak;\n\t\tcase 'x':\n\t\t\txdev = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tusage();\n\t\t\tbreak;\n\t}\n\tif (optind != argc - 1) usage();\n\tpath = argv[optind];\n\n\tif (dostat(path, &st, !xdev, quiet) < 0)\n\t\treturn 1;\n\n\tif (xdev) {\n#ifdef __linux__\n\t\tif (!S_ISBLK(st.st_mode))\n#else\n\t\tif (!S_ISBLK(st.st_mode) && !S_ISCHR(st.st_mode))\n#endif\n\t\t{\n\t\t\tif (quiet)\n\t\t\t\tprintf(\"\\n\");\n\t\t\telse\n\t\t\tfprintf(stderr, \"mountpoint: %s: not a block device\\n\",\n\t\t\t\tpath);\n\t\t\treturn 1;\n\t\t}\n\t\tprintf(\"%u:%u\\n\", major(st.st_rdev), minor(st.st_rdev));\n\t\treturn 0;\n\t}\n\n\tif (!S_ISDIR(st.st_mode)) {\n\t\tif (!quiet)\n\t\t\tfprintf(stderr, \"mountpoint: %s: not a directory\\n\",\n\t\t\t\tpath);\n\t\treturn 1;\n\t}\n\n\tmemset(buf, 0, sizeof(buf));\n\tstrncpy(buf, path, sizeof(buf) - 4);\n\tstrncat(buf, \"/..\", 3);\n\tif (dostat(buf, &st2, 0, quiet) < 0)\n\t\treturn 1;\n\n\t/* r = ( (st.st_dev != st2.st_dev) ||\n\t    ( (st.st_dev == st2.st_dev) && (st.st_ino == st2.st_ino) ) ;\n\n            (A || (!A && B)) is the same as (A || B) so simplifying this below.\n            Thanks to David Binderman for pointing this out. -- Jesse\n        */\n        r = ( (st.st_dev != st2.st_dev) || (st.st_ino == st2.st_ino) );\n              \n        /* Mount point was not found yet. If we have access\n           to /proc we can check there too. */\n        if ( (!r) && (check_proc) )\n        {\n           if ( do_proc_check(path) )\n              r = 1;\n        }\n\n\tif (!quiet && !showdev)\n\t\tprintf(\"%s is %sa mountpoint\\n\", path, r ? \"\" : \"not \");\n\tif (showdev)\n\t\tprintf(\"%u:%u\\n\", major(st.st_dev), minor(st.st_dev));\n\n\treturn r ? 0 : 1;\n}\n"
  },
  {
    "path": "src/oldutmp.h",
    "content": "/*\n * oldutmp.h\tDefinition of the old libc5 utmp structure.\n *\n * Version:\t@(#)oldutmp.h  1.00  29-Mar-1998  miquels@cistron.nl\n *\n * Copyright (C) 1991-2000 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n#ifndef OLD_UTMP_H\n#define OLD_UTMP_H\n\n#define OLD_LINESIZE\t\t12\n#define OLD_NAMESIZE\t\t8\n#define OLD_HOSTSIZE\t\t16\n\nstruct oldutmp {\n\tshort\tut_type;\n\tint\tut_pid;\n\tchar\tut_line[OLD_LINESIZE];\n\tchar\tut_id[4];\n\tlong\tut_oldtime;\n\tchar\tut_user[OLD_NAMESIZE];\n\tchar\tut_host[OLD_HOSTSIZE];\n\tlong\tut_oldaddr;\n};\n\n#endif\n"
  },
  {
    "path": "src/paths.h",
    "content": "/*\n * paths.h\tPaths of files that init and related utilities need.\n *\n * Version:\t@(#) paths.h 2.85-8 05-Nov-2003\n *\n * Author:\tMiquel van Smoorenburg, <miquels@cistron.nl>\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2001 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n#define VT_MASTER\t\"/dev/tty0\"\t\t/* Virtual console master */\n#define CONSOLE\t\t\"/dev/console\"\t\t/* Logical system console */\n#define SECURETTY\t\"/etc/securetty\"\t/* List of root terminals */\n#define SDALLOW\t\t\"/etc/shutdown.allow\"\t/* Users allowed to shutdown */\n#define INITTAB\t\t\"/etc/inittab\"\t\t/* Location of inittab */\n#define INITTABD\t\"/etc/inittab.d\"\t/* Location of inittab.d directory */\n#define INIT\t\t\"/sbin/init\"\t\t/* Location of init itself. */\n#define NOLOGIN\t\t\"/etc/nologin\"\t\t/* Stop user logging in. */\n#define FASTBOOT\t\"/fastboot\"\t\t/* Enable fast boot. */\n#define FORCEFSCK\t\"/forcefsck\"\t\t/* Force fsck on boot */\n#define SDPID\t\t\"/var/run/shutdown.pid\"\t/* PID of shutdown program */\n#define SHELL\t\t\"/bin/sh\"\t\t/* Default shell */\n#define SULOGIN\t\t\"/sbin/sulogin\"\t\t/* Sulogin */\n#define INITSCRIPT\t\"/etc/initscript\"\t/* Initscript. */\n#define PWRSTAT_OLD\t\"/etc/powerstatus\"\t/* COMPAT: SIGPWR reason (OK/BAD) */\n#define PWRSTAT\t\t\"/var/run/powerstatus\"\t/* COMPAT: SIGPWR reason (OK/BAD) */\n#define RUNLEVEL_LOG    \"/var/run/runlevel\"     /* neutral place to store run level */\n\n#if 0\n#define INITLVL\t\t\"/etc/initrunlvl\"\t/* COMPAT: New runlevel */\n#define INITLVL2\t\"/var/log/initrunlvl\"\t/* COMPAT: New runlevel */\n\t\t\t\t/* Note: INITLVL2 definition needs INITLVL */\n#define HALTSCRIPT1\t\"/etc/init.d/halt\"\t/* Called by \"fast\" shutdown */\n#define HALTSCRIPT2\t\"/etc/rc.d/rc.0\"\t/* Called by \"fast\" shutdown */\n#define REBOOTSCRIPT1\t\"/etc/init.d/reboot\"\t/* Ditto. */\n#define REBOOTSCRIPT2\t\"/etc/rc.d/rc.6\"\t/* Ditto. */\n#endif\n\n"
  },
  {
    "path": "src/readbootlog.c",
    "content": "#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include \"bootlogd.h\"\n\n#ifndef MAX_LINE\n#define MAX_LINE 256\n#endif\n\nvoid print_usage()\n{\n   printf(\"readbootlog reads the system's boot log, stripping away\\n\");\n   printf(\"control characters to make the log human readable.\\n\\n\");\n   printf(\"Usage for readbootlog: readbootlog [-h] [-f logfile]\\n\");\n   printf(\"\\t\\t-h             display this help message\\n\");\n   printf(\"\\t\\t-f <logfile>   display a specific boot log file\\n\");\n   printf(\"\\t\\t               default is to use %s\\n\", LOGFILE);\n   printf(\"\\n\");\n}\n\n/*\nClean up the unwanted characters from a line of input.\nCleaned line is passed back in output_line.\nReturns TRUE on success or FALSE if we encounter an error.\n*/\nint Clean_Line(char *source_line, char *output_line)\n{\n   int source_index = 0, target_index = 0;\n   int source_max_index;\n   char a_letter;\n   int done;\n   char *garbage;\n\n   if (! source_line) return FALSE;\n   if (! output_line) return FALSE;\n\n   source_max_index = strlen(source_line);\n   while (source_index < source_max_index)\n   {\n       a_letter = source_line[source_index];\n       if (a_letter == '^')\n       {\n          /* skip ahead until we find a valid place to stop */\n          done = FALSE;\n          while (! done)\n          {\n              source_index++;\n              if (source_index >= source_max_index)\n                 done = TRUE;\n              else\n              {\n                 a_letter = source_line[source_index];\n                 if ( (a_letter == '.') || (a_letter == ' ') ||\n                      (a_letter == '(') || (a_letter == 'd') ||\n                      (a_letter == '\\n') )\n                    done = TRUE;\n              }\n          }   \n       }    /* done found character to scrub */\n       else if ( (a_letter == '?') && (source_line[source_index + 1] == '?') &&\n                 (source_line[source_index + 2] == '7') )\n       {\n           source_index += 3;\n           output_line[target_index] = ' '; \n           target_index++;\n       }\n       else if ( (a_letter == '8') && (source_line[source_index + 1] == '?') &&\n                 (source_line[source_index + 2] == '?') )\n       {\n           source_index += 3;\n           output_line[target_index] = ']';\n           target_index++;\n       }\n       else\n       {\n            output_line[target_index] = a_letter;\n            target_index++;\n            source_index++;\n       }     /* found valid character */\n   }   /* done processing line   */\n\n   garbage = strstr(output_line, \" .\\n\");\n   if (garbage)\n   {\n      garbage[0] = '\\n';\n      garbage[1] = '\\0';\n   }\n   return TRUE;\n}\n\n\nint main(int argc, char *argv[])\n{\n  FILE *log_file = NULL;\n  char *log_filename = LOGFILE;\n  char line[MAX_LINE];\n  char output[MAX_LINE];\n  char *status;\n  int c;\n\n  /* check provided options */\n  while ( (c = getopt(argc, argv, \"hf:\") ) != EOF)\n  {\n      switch (c)\n      {\n         case 'h':\n               print_usage();\n               exit(0);\n         case 'f':\n              log_filename = optarg;\n              break;      \n         default:\n              print_usage();\n              exit(1);\n      }\n  }   /* done processing arguments */\n\n  log_file = fopen(log_filename, \"r\");\n  if (log_file)\n  {\n     status = fgets(line, MAX_LINE, log_file);\n     while (status)\n     {\n          memset(output, '\\0', MAX_LINE);\n          if ( Clean_Line(line, output) )\n          {\n              printf(\"%s\", output);\n          }\n          status = fgets(line, MAX_LINE, log_file);\n     }    /* done reading file lines */\n     fclose(log_file);\n  }    /* end of successfully opened log file */\n  else\n  {\n      fprintf(stderr, \"Unable to open file %s\\n\", log_filename);\n      return 1;\n  }\n\n  return 0;\n}\n"
  },
  {
    "path": "src/reboot.h",
    "content": "/*\n * reboot.h\tHeaderfile that defines how to handle\n *\t\tthe reboot() system call.\n *\n * Version:\t@(#)reboot.h  2.85-17  04-Jun-2004  miquels@cistron.nl\n *\n * Copyright (C) (C) 1991-2004 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <sys/reboot.h>\n\n#ifdef RB_ENABLE_CAD\n#  define BMAGIC_HARD\t\tRB_ENABLE_CAD\n#endif\n\n#ifdef RB_DISABLE_CAD\n#  define BMAGIC_SOFT\t\tRB_DISABLE_CAD\n#endif\n\n#ifdef RB_HALT_SYSTEM\n#  define BMAGIC_HALT\t\tRB_HALT_SYSTEM\n#else\n#  define BMAGIC_HALT\t\tRB_HALT\n#endif\n\n#define BMAGIC_REBOOT\t\tRB_AUTOBOOT\n\n#ifdef RB_POWER_OFF\n#  define BMAGIC_POWEROFF\tRB_POWER_OFF\n#elif defined(RB_POWEROFF)\n#  define BMAGIC_POWEROFF\tRB_POWEROFF\n#else\n#  define BMAGIC_POWEROFF\tBMAGIC_HALT\n#endif\n\n/* for kexec support */\n#define BMAGIC_KEXEC  0x45584543\n\n#define init_reboot(magic)\treboot(magic)\n\n"
  },
  {
    "path": "src/runlevel.c",
    "content": "/*\n * runlevel\tPrints out the previous and the current runlevel.\n *\n * Version:\t@(#)runlevel  1.20  16-Apr-1997  MvS\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-1997 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <stdio.h>\n#include <utmp.h>\n#include <time.h>\n#include <stdlib.h>\n#include \"runlevellog.h\"\n\nint main(argc, argv)\nint argc;\nchar **argv;\n{\n  struct utmp *ut;\n  char prev;\n  int status, runlevel;\n\n  if (argc > 1) utmpname(argv[1]);\n\n  setutent();\n  while ((ut = getutent()) != NULL) {\n\tif (ut->ut_type == RUN_LVL) {\n\t\tprev = ut->ut_pid / 256;\n\t\tif (prev == 0) prev = 'N';\n\t\tprintf(\"%c %c\\n\", prev, ut->ut_pid % 256);\n\t\tendutent();\n\t\texit(0);\n\t}\n  }\n  endutent();\n  \n  status = Read_Runlevel_Log(&runlevel);\n  if (status)\n  {\n     printf(\"N %c\\n\", runlevel);\n     return 0;\n  }\n  printf(\"unknown\\n\");\n  return(1);\n}\n\n"
  },
  {
    "path": "src/runlevellog.c",
    "content": "/*\n * runlevellog  - Saves and restores runlevel from distor-neutral location.\n *\n *\n *              This file is part of the sysvinit suite,\n *              Copyright (C) 2018 Jesse Smith\n *\n *              This program is free software; you can redistribute it and/or modify\n *              it under the terms of the GNU General Public License as published by\n *              the Free Software Foundation; version 2 of the License.\n *\n *              This program is distributed in the hope that it will be useful,\n *              but WITHOUT ANY WARRANTY; without even the implied warranty of\n *              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *              GNU General Public License for more details.\n *\n *              You should have received a copy of the GNU General Public License\n *              along with this program; if not, write to the Free Software\n *              Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <stdio.h>\n#include \"paths.h\"\n#include \"runlevellog.h\"\n\n/*\nWrite the current runlevel to its log file.\nThe function returns TRUE on success and FALSE\non failure.\n*/\nint Write_Runlevel_Log(int new_runlevel)\n{\n   FILE *log_file;\n   int status;\n\n   log_file = fopen(RUNLEVEL_LOG, \"w\");\n   if (! log_file)\n      return FALSE;\n\n   status = fprintf(log_file, \"%c\", new_runlevel);\n   fclose(log_file);\n   if (status < 1)\n      return FALSE;\n   return TRUE;\n}\n\n\n/*\nThis function reads the last runlevel from the log file.\nThe function stores the read value at the addressed passed\ninto the function (aka runlevel). The function returns\nTRUE on success and FALSE on failure.\n*/\nint Read_Runlevel_Log(int *runlevel)\n{\n   FILE *log_file;\n   int status;\n\n   log_file = fopen(RUNLEVEL_LOG, \"r\");\n   if (! log_file)\n     return FALSE;\n\n   status = fscanf(log_file, \"%c\", (char *) runlevel);\n   fclose(log_file);\n   if (status < 1)\n      return FALSE;\n   return TRUE;\n\n}\n\n"
  },
  {
    "path": "src/runlevellog.h",
    "content": "/*\n * runlevellog  - Saves and restores runlevel from distor-neutral location.\n *\n *\n *              This file is part of the sysvinit suite,\n *              Copyright (C) 2018 Jesse Smith\n *\n *              This program is free software; you can redistribute it and/or modify\n *              it under the terms of the GNU General Public License as published by\n *              the Free Software Foundation; version 2 of the License.\n *\n *              This program is distributed in the hope that it will be useful,\n *              but WITHOUT ANY WARRANTY; without even the implied warranty of\n *              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *              GNU General Public License for more details.\n *\n *              You should have received a copy of the GNU General Public License\n *              along with this program; if not, write to the Free Software\n *              Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#ifndef RUNLEVEL_LOG_HEADER__\n#define RUNLEVEL_LOG_HEADER__\n\n#ifndef TRUE\n#define TRUE 1\n#endif\n#ifndef FALSE\n#define FALSE 0\n#endif\n\nint Write_Runlevel_Log(int new_runlevel);\nint Read_Runlevel_Log(int *runlevel);\n\n#endif\n\n"
  },
  {
    "path": "src/set.h",
    "content": "/*\n * set.h\tMacros that look like sigaddset et al. but\n *\t\taren't. They are used to manipulate bits in\n *\t\tan integer, to do our signal bookkeeping.\n *\n * Copyright (C) 2005 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n\n#define ISMEMBER(set, val) ((set) & (1 << (val)))\n#define DELSET(set, val)   ((set) &= ~(1 << (val)))\n#define ADDSET(set, val)   ((set) |=  (1 << (val)))\n#define EMPTYSET(set)      ((set) = 0)\n\n"
  },
  {
    "path": "src/shutdown.c",
    "content": "/*\n * shutdown.c\tShut the system down.\n *\n * Usage:\tshutdown [-krhfnc] time [warning message]\n *\t\t  -k: don't really shutdown, only warn.\n *\t\t  -r: reboot after shutdown.\n *\t\t  -h: halt after shutdown.\n *\t\t  -f: do a 'fast' reboot (skip fsck).\n *\t\t  -F: Force fsck on reboot.\n *\t\t  -n: do not go through init but do it ourselves.\n *\t\t  -c: cancel an already running shutdown.\n *\t\t  -t secs: delay between SIGTERM and SIGKILL for init.\n *\n * Author:\tMiquel van Smoorenburg, miquels@cistron.nl\n *\n * Version:\t@(#)shutdown  2.86-1  31-Jul-2004  miquels@cistron.nl\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2004 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n#ifndef _GNU_SOURCE\n# define _GNU_SOURCE\t/* otherwise `extern char **environ' is missed */\n#endif\n#ifndef ACCTON_OFF\n# define ACCTON_OFF\t0\n#endif\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/wait.h>\n#ifdef __linux__\n#include <sys/sysmacros.h>   /* brought in my LFS patch */\n#endif\n#include <time.h>\n#include <string.h>\n#include <errno.h>\n#include <unistd.h>\n#include <errno.h>\n#include <stdlib.h>\n#include <stdio.h> \n#include <signal.h>\n#include <fcntl.h>\n#include <stdarg.h>\n#ifdef __FreeBSD__\n#include <utmpx.h>\n#else\n#include <utmp.h>\n#endif\n#include <syslog.h>\n#include \"paths.h\"\n#include \"reboot.h\"\n#include \"initreq.h\"\n#include \"init.h\"\n\n#ifdef __FreeBSD__\nextern char **environ;\n#endif\n\n#define MESSAGELEN\t256\n#define STATELEN        64\n#define WHEN_SIZE       64\n\n/* Whether we should warn system is shutting down */\n#define QUIET_FULL 2\n#define QUIET_PARTIAL 1\n#define QUIET_NONE 0\n\nint dontshut = 0;\t/* Don't shutdown, only warn\t*/\nchar down_level[2];\t/* What runlevel to go to.\t*/\nint dosync = 1;\t\t/* Sync before reboot or halt\t*/\nint fastboot = 0;\t/* Do a 'fast' reboot\t\t*/\nint forcefsck = 0;\t/* Force fsck on reboot\t\t*/\nchar message[MESSAGELEN];\t/* Warning message\t*/\nchar *sltime = 0;\t/* Sleep time\t\t\t*/\nchar newstate[STATELEN];\t/* What are we gonna do\t\t*/\nint doself = 0;\t\t/* Don't use init\t\t*/\nint got_alrm = 0;\n\nchar *clean_env[] = {\n\t\"HOME=/\",\n\t\"PATH=\" PATH_DEFAULT,\n\t\"TERM=dumb\",\n\t\"SHELL=/bin/sh\",\n\tNULL,\n};\n\n/* From \"utmp.c\" */\nextern void write_wtmp(char *user, char *id, int pid, int type, char *line);\n\n/*\n *\tSleep without being interrupted.\n */\nvoid hardsleep(int secs)\n{\n\tstruct timespec ts, rem;\n\n\tts.tv_sec = secs;\n\tts.tv_nsec = 0;\n\n\twhile(nanosleep(&ts, &rem) < 0 && errno == EINTR)\n\t\tts = rem;\n}\n\n/*\n *\tBreak off an already running shutdown.\n */\n# ifdef __GNUC__\nvoid stopit(int sig __attribute__((unused)))\n# else\nvoid stopit(int sig)\n# endif\n\n{\n\tunlink(NOLOGIN);\n\tunlink(FASTBOOT);\n\tunlink(FORCEFSCK);\n\tunlink(SDPID);\n\tprintf(\"\\r\\nShutdown cancelled.\\r\\n\");\n\texit(0);\n}\n\n/*\n *\tShow usage message.\n */\nvoid usage(void)\n{\n\tfprintf(stderr,\n\t\"Usage:\\t  shutdown [-akrhPHfFnc] [-t sec] time [warning message]\\n\"\n\t\"\\t\\t  -a:      use /etc/shutdown.allow\\n\"\n\t\"\\t\\t  -k:      don't really shutdown, only warn.\\n\"\n\t\"\\t\\t  -r:      reboot after shutdown.\\n\"\n\t\"\\t\\t  -h:      halt after shutdown.\\n\"\n\t\"\\t\\t  -P:      halt action is to turn off power.\\n\"\n        \"\\t\\t           can only be used along with -h flag.\\n\"\n\t\"\\t\\t  -H:      halt action is to just halt.\\n\"\n        \"\\t\\t           can only be used along with -h flag.\\n\"\n\t\"\\t\\t  -f:      do a 'fast' reboot (skip fsck).\\n\"\n\t\"\\t\\t  -F:      Force fsck on reboot.\\n\"\n\t\"\\t\\t  -n:      do not go through \\\"init\\\" but go down real fast.\\n\"\n\t\"\\t\\t  -c:      cancel a running shutdown.\\n\"\n        \"\\t\\t  -q:      quiet mode - display fewer shutdown warnings.\\n\"\n        \"\\t\\t  -Q:      full quiet mode - display only final shutdown warning.\\n\"\n\t\"\\t\\t  -t secs: delay between warning and kill signal.\\n\"\n\t\"\\t\\t  ** the \\\"time\\\" argument is mandatory! (try \\\"now\\\") **\\n\");\n\texit(1);\n}\n\n\nvoid alrm_handler(int sig)\n{\n\tgot_alrm = sig;\n}\n\n\n/*\n *\tSet environment variables in the init process.\n */\nint init_setenv(char *name, char *value)\n{\n\tstruct init_request\trequest;\n\tstruct sigaction\tsa;\n\tint\t\t\tfd;\n\tsize_t\t\t\tnl, vl;\n\n\tmemset(&request, 0, sizeof(request));\n\trequest.magic = INIT_MAGIC;\n\trequest.cmd = INIT_CMD_SETENV;\n\tnl = strlen(name);\n\tvl = value ? strlen(value) : 0;\n\n\tif (nl + vl + 3 >= (int)sizeof(request.i.data))\n\t\treturn -1;\n\n\tmemcpy(request.i.data, name, nl);\n\tif (value) {\n\t\trequest.i.data[nl] = '=';\n\t\tmemcpy(request.i.data + nl + 1, value, vl);\n\t}\n\n        /*\n\t *\tOpen the fifo and write the command.\n         *\tMake sure we don't hang on opening /run/initctl\n\t */\n\tmemset(&sa, 0, sizeof(sa));\n\tsa.sa_handler = alrm_handler;\n\tsigaction(SIGALRM, &sa, NULL);\n\tgot_alrm = 0;\n\talarm(3);\n\tif ((fd = open(INIT_FIFO, O_WRONLY)) >= 0) {\n\t\tssize_t p = 0;\n\t\tsize_t s  = sizeof(request);\n\t\tvoid *ptr = &request;\n\t\twhile (s > 0) {\n\t\t\tp = write(fd, ptr, s);\n\t\t\tif (p < 0) {\n\t\t\t\tif (errno == EINTR || errno == EAGAIN)\n\t\t\t\t\tcontinue;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tptr += p;\n\t\t\ts -= p;\n\t\t}\n\t\tclose(fd);\n\t\talarm(0);\n\t\treturn 0;\n\t}\n                                                                                \n\tfprintf(stderr, \"shutdown: \");\n\tif (got_alrm) {\n\t\tfprintf(stderr, \"timeout opening/writing control channel %s\\n\",\n\t\t\tINIT_FIFO);\n\t} else {\n\t\tperror(INIT_FIFO);\n\t}\n\treturn -1;\n}\n\n\n/*\n *\tTell everyone the system is going down in 'mins' minutes.\n */\nvoid issue_warn(int mins)\n{\n\tchar buf[MESSAGELEN + sizeof(newstate) + 1];\n\tint len;\n\n\tbuf[0] = 0;\n\tstrncpy(buf, message, MESSAGELEN);\n\tlen = strlen(buf);\n\n\tif (mins == 0)\n\t\tsnprintf(buf + len, sizeof(buf) - len,\n\t\t\t\"\\rThe system is going down %s NOW!\\r\\n\",\n\t\t\tnewstate);\n\telse\n  \t\tsnprintf(buf + len, sizeof(buf) - len,\n\t\t\t\"\\rThe system is going DOWN %s in %d minute%s!\\r\\n\",\n\t\t\t\tnewstate, mins, mins == 1 ? \"\" : \"s\");\n\twall(buf, 0);\n}\n\n/*\n *\tCreate the /etc/nologin file.\n */\nvoid donologin(int min)\n{\n\tFILE *fp;\n\ttime_t t;\n        char *ctime_output;\n\n\ttime(&t);\n\tt += 60 * min;\n        ctime_output = ctime(&t);\n        if (! ctime_output)\n            ctime_output = \"soon\";\n\tif ((fp = fopen(NOLOGIN, \"w\")) != NULL) {\n  \t\tfprintf(fp, \"\\rThe system is going down on %s\\r\\n\", ctime_output);\n  \t\tif (message[0]) fputs(message, fp);\n  \t\tfclose(fp);\n\t}\n}\n\n/*\n *\tSpawn an external program.\n */\nint spawn(int noerr, char *prog, ...)\n{\n\tva_list\tap;\n\tpid_t\tpid, rc;\n\tint\ti;\n\tchar\t*argv[8];\n\n\ti = 0;\n\twhile ((pid = fork()) < 0 && i < 10) {\n\t\tperror(\"fork\");\n\t\tsleep(5);\n\t\ti++;\n\t}\n\n\tif (pid < 0) return -1;\n\n\tif (pid > 0) {\n\t\twhile((rc = wait(&i)) != pid)\n\t\t\tif (rc < 0 && errno == ECHILD)\n\t\t\t\tbreak;\n\t\treturn (rc == pid) ? WEXITSTATUS(i) : -1;\n\t}\n\n\tif (noerr) fclose(stderr);\n\n\targv[0] = prog;\n\tva_start(ap, prog);\n\tfor (i = 1; i < 7 && (argv[i] = va_arg(ap, char *)) != NULL; i++)\n\t\t;\n\targv[i] = NULL;\n\tva_end(ap);\n\n\tif (chdir(\"/\"))\n\t\texit(1);\n\tenviron = clean_env;\n\n\texecvp(argv[0], argv);\n\tperror(argv[0]);\n\texit(1);\n\n\t/*NOTREACHED*/\n\treturn 0;\n}\n\n/*\n *\tKill all processes, call /etc/init.d/halt (if present)\n */\nvoid fastdown()\n{\n\tint do_halt = (down_level[0] == '0');\n\tint i;\n#if 0\n\tchar cmd[128];\n\tchar *script;\n\n\t/*\n\t *\tCurrently, the halt script is either init.d/halt OR rc.d/rc.0,\n\t *\tlikewise for the reboot script. Test for the presence\n\t *\tof either.\n\t */\n\tif (do_halt) {\n\t\tif (access(HALTSCRIPT1, X_OK) == 0)\n\t\t\tscript = HALTSCRIPT1;\n\t\telse\n\t\t\tscript = HALTSCRIPT2;\n\t} else {\n\t\tif (access(REBOOTSCRIPT1, X_OK) == 0)\n\t\t\tscript = REBOOTSCRIPT1;\n\t\telse\n\t\t\tscript = REBOOTSCRIPT2;\n\t}\n#endif\n\n\t/* First close all files. */\n\tfor(i = 0; i < 3; i++)\n\t\tif (!isatty(i)) {\n\t\t\tclose(i);\n\t\t\topen(\"/dev/null\", O_RDWR);\n\t\t}\n\tfor(i = 3; i < 20; i++) close(i);\n\tclose(255);\n\n\t/* First idle init. */\n\tif (kill(1, SIGTSTP) < 0) {\n\t\tfprintf(stderr, \"shutdown: can't idle init: %s.\\r\\n\", strerror(errno));\n\t\texit(1);\n\t}\n\n\t/* Kill all processes. */\n\tfprintf(stderr, \"shutdown: sending all processes the TERM signal...\\r\\n\");\n\tkill(-1, SIGTERM);\n\tsleep(sltime ? atoi(sltime) : WAIT_BETWEEN_SIGNALS);\n\tfprintf(stderr, \"shutdown: sending all processes the KILL signal.\\r\\n\");\n\t(void) kill(-1, SIGKILL);\n\n#if 0\n\t/* See if we can run /etc/init.d/halt */\n\tif (access(script, X_OK) == 0) {\n\t\tspawn(1, cmd, \"fast\", NULL);\n\t\tfprintf(stderr, \"shutdown: %s returned - falling back \"\n\t\t\t\t\"on default routines\\r\\n\", script);\n\t}\n#endif\n\n\t/* script failed or not present: do it ourself. */\n\t/* Give init the chance to collect zombies. */\n        /* sleep(1); */\n\n\t/* Record the fact that we're going down */\n\twrite_wtmp(\"shutdown\", \"~~\", 0, RUN_LVL, \"~~\");\n\n\t/* This is for those who have quota installed. */\n#if defined(ACCTON_OFF)\n# if (ACCTON_OFF > 1) && (_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500))\n\t/* This is an alternative way to disable accounting, saving a fork() */\n\tif (acct(NULL))\n\t\tfprintf(stderr, \"shutdown: can not stop process accounting: %s.\\r\\n\", strerror(errno));\n# elif (ACCTON_OFF > 0)\n\tspawn(1, \"accton\", \"off\", NULL);\n# else\n\tspawn(1, \"accton\", NULL);\n# endif\n#endif\n\tspawn(1, \"quotaoff\", \"-a\", NULL);\n\n\tsync();\n\tfprintf(stderr, \"shutdown: turning off swap\\r\\n\");\n\tspawn(0, \"swapoff\", \"-a\", NULL);\n\tfprintf(stderr, \"shutdown: unmounting all file systems\\r\\n\");\n\tspawn(0, \"umount\", \"-a\", NULL);\n\n\t/* We're done, halt or reboot now. */\n\tif (do_halt) {\n\t\tfprintf(stderr, \"The system is halted. Press CTRL-ALT-DEL \"\n\t\t\t\t\"or turn off power\\r\\n\");\n\t\tinit_reboot(BMAGIC_HALT);\n\t\texit(0);\n\t}\n\n\tfprintf(stderr, \"Please stand by while rebooting the system.\\r\\n\");\n\tinit_reboot(BMAGIC_REBOOT);\n\texit(0);\n}\n\n/*\n *\tGo to runlevel 0, 1 or 6.\n */\nvoid issue_shutdown(char *halttype)\n{\n\tchar\t*args[8];\n\tint\targp = 0;\n\tint\tdo_halt = (down_level[0] == '0');\n\n\t/* Warn for the last time */\n\tissue_warn(0);\n\tif (dontshut) {\n\t\thardsleep(1);\n\t\tstopit(0);\n\t}\n\topenlog(\"shutdown\", LOG_PID, LOG_USER);\n\tif (do_halt)\n  \t\tsyslog(LOG_NOTICE, \"shutting down for system halt\");\n\telse\n\t\tsyslog(LOG_NOTICE, \"shutting down for system reboot\");\n\tcloselog();\n\n\t/* See if we have to do it ourself. */\n\tif (doself) fastdown();\n\n\t/* Create the arguments for init. */\n\targs[argp++] = INIT;\n\tif (sltime) {\n\t\targs[argp++] = \"-t\";\n\t\targs[argp++] = sltime;\n\t}\n\targs[argp++] = down_level;\n\targs[argp]   = (char *)NULL;\n\n\tunlink(SDPID);\n\tunlink(NOLOGIN);\n\n\t/* Now execute init to change runlevel. */\n\tsync();\n\tinit_setenv(\"INIT_HALT\", halttype);\n\texecv(INIT, args);\n\n\t/* Oops - failed. */\n\tfprintf(stderr, \"\\rshutdown: cannot execute %s\\r\\n\", INIT);\n\tunlink(FASTBOOT);\n\tunlink(FORCEFSCK);\n\tinit_setenv(\"INIT_HALT\", NULL);\n\topenlog(\"shutdown\", LOG_PID, LOG_USER);\n\tsyslog(LOG_NOTICE, \"shutdown failed\");\n\tcloselog();\n\texit(1);\n}\n\n/*\n *\treturns if a warning is to be sent for wt\n */\nstatic int needwarning(int wt, int quiet_mode)\n{\n\tint ret;\n\n        if (quiet_mode == QUIET_FULL) return FALSE;\n        else if (quiet_mode == QUIET_PARTIAL)\n        {\n            if (wt == 10)\n               return TRUE;\n            else if (wt == 5)\n               return TRUE;\n            else if ( (wt % 60) == 0)\n               return TRUE;\n            else\n               return FALSE;\n        }\n        /* no silence setting, print lots of warnings */\n\tif (wt < 10)\n\t\tret = 1;\n\telse if (wt < 60)\n\t\tret = (wt % 15 == 0);\n\telse if (wt < 180)\n\t\tret = (wt % 30 == 0);\n\telse\n\t\tret = (wt % 60 == 0);\n\n\treturn ret;\n}\n\n/*\n *\tMain program.\n *\tProcess the options and do the final countdown.\n */\nint main(int argc, char **argv)\n{\n\tFILE\t\t\t*fp;\n\textern int\t\tgetopt();\n\textern int\t\toptind; \n\tstruct sigaction\tsa;\n\tstruct tm\t\t*lt;\n\tstruct stat\t\tst;\n\tstruct utmp\t\t*ut;\n\ttime_t\t\t\tt, target_time;\n\tchar\t\t\t*halttype;\n\tchar\t\t\t*downusers[32];\n\tchar\t\t\tbuf[128];\n\tchar\t\t\tterm[UT_LINESIZE + 6];\n\tchar\t\t\t*sp;\n\tchar\t\t\twhen[WHEN_SIZE];\n\tint\t\t\tc, i, wt;\n\tint\t\t\thours, mins;\n\tint\t\t\tdidnolog = 0;\n\tint\t\t\tcancel = 0;\n\tint\t\t\tuseacl = 0;\n\tint\t\t\tpid = 0;\n\tint\t\t\tuser_ok = 0;\n        int quiet_level = QUIET_NONE;   /* Whether to display shutdown warning */\n\n\t/* We can be installed setuid root (executable for a special group) */\n\t/* \n        This way is risky, do error check on setuid call.\n        setuid(geteuid());\n        */\n        errno = 0;\n        if (setuid(geteuid()) == -1) {\n            fprintf(stderr, \"%s (%d): %s\\n\", __FILE__, __LINE__, strerror(errno));\n            abort();\n\t}\n\n\tif (getuid() != 0) {\n  \t\tfprintf(stderr, \"shutdown: you must be root to do that!\\n\");\n\t\tusage();\n  \t\texit(1);\n\t}\n\tstrcpy(down_level, \"1\");\n\thalttype = NULL;\n        memset(when, '\\0', WHEN_SIZE);\n\n\t/* Process the options. */\n\twhile((c = getopt(argc, argv, \"HPacqQkrhnfFyt:g:i:\")) != EOF) {\n  \t\tswitch(c) {\n\t\t\tcase 'H':\n\t\t\t\thalttype = \"HALT\";\n\t\t\t\tbreak;\n\t\t\tcase 'P':\n\t\t\t\thalttype = \"POWEROFF\";\n\t\t\t\tbreak;\n\t\t\tcase 'a': /* Access control. */\n\t\t\t\tuseacl = 1;\n\t\t\t\tbreak;\n\t\t\tcase 'c': /* Cancel an already running shutdown. */\n\t\t\t\tcancel = 1;\n\t\t\t\tbreak;\n  \t\t\tcase 'k': /* Don't really shutdown, only warn.*/\n  \t\t\t\tdontshut = 1;\n  \t\t\t\tbreak;\n  \t\t\tcase 'r': /* Automatic reboot */\n\t\t\t\tdown_level[0] = '6';\n  \t\t\t\tbreak;\n  \t\t\tcase 'h': /* Halt after shutdown */\n\t\t\t\tdown_level[0] = '0';\n  \t\t\t\tbreak;\n  \t\t\tcase 'f': /* Don't perform fsck after next boot */\n  \t\t\t\tfastboot = 1;\n  \t\t\t\tbreak;\n  \t\t\tcase 'F': /* Force fsck after next boot */\n  \t\t\t\tforcefsck = 1;\n  \t\t\t\tbreak;\n\t\t\tcase 'n': /* Don't switch runlevels. */\n\t\t\t\tdoself = 1;\n\t\t\t\tbreak;\n\t\t\tcase 't': /* Delay between TERM and KILL */\n\t\t\t\tsltime = optarg;\n\t\t\t\tbreak;\n                        case 'q': /* put into somewhat quiet mode */\n                                quiet_level = QUIET_PARTIAL;\n                                break;\n                        case 'Q': /* put into full quiet mode */\n                                quiet_level = QUIET_FULL;\n                                break;\n\t\t\tcase 'y': /* Ignored for sysV compatibility */\n\t\t\t\tbreak;\n\t\t\tcase 'g': /* sysv style to specify time. */\n\t\t\t\tstrncpy(when, optarg, WHEN_SIZE - 1);\n\t\t\t\tbreak;\n\t\t\tcase 'i': /* Level to go to. */\n\t\t\t\tif (!strchr(\"0156aAbBcCsS\", optarg[0])) {\n\t\t\t\t\tfprintf(stderr,\n\t\t\t\t\t\"shutdown: `%s': bad runlevel\\n\",\n\t\t\t\t\toptarg);\n\t\t\t\t\texit(1);\n\t\t\t\t}\n\t\t\t\tdown_level[0] = optarg[0];\n\t\t\t\tbreak;\n  \t\t\tdefault:\n  \t\t\t\tusage();\n  \t\t\t\tbreak;\t\n  \t\t}\n\t}\n\n\tif (NULL != halttype && down_level[0] != '0') {\n\t\tfprintf(stderr, \"shutdown: -H and -P flags can only be used along with -h flag.\\n\");\n\t\tusage();\n  \t\texit(1);\n\t}\n\n\t/* Do we need to use the shutdown.allow file ? */\n\tif (useacl && (fp = fopen(SDALLOW, \"r\")) != NULL) {\n\n\t\t/* Read /etc/shutdown.allow. */\n\t\ti = 0;\n\t\twhile(fgets(buf, 128, fp)) {\n\t\t\tif (buf[0] == '#' || buf[0] == '\\n') continue;\n\t\t\tif (i > 31) continue;\n\t\t\tfor(sp = buf; *sp; sp++) if (*sp == '\\n') *sp = 0;\n\t\t\tdownusers[i++] = strdup(buf);\n\t\t}\n\t\tif (i < 32) downusers[i] = 0;\n\t\tfclose(fp);\n\n\t\t/* Now walk through /var/run/utmp to find logged in users. */\n\t\twhile(!user_ok && (ut = getutent()) != NULL) {\n\n\t\t\t/* See if this is a user process on a VC. */\n\t\t\tif (ut->ut_type != USER_PROCESS) continue;\n\t\t\tsprintf(term, \"/dev/%.*s\", UT_LINESIZE, ut->ut_line);\n\t\t\tif (stat(term, &st) < 0) continue;\n#ifdef major /* glibc */\n\t\t\tif (major(st.st_rdev) != 4 ||\n\t\t\t    minor(st.st_rdev) > 63) continue;\n#else\n\t\t\tif ((st.st_rdev & 0xFFC0) != 0x0400) continue;\n#endif\n\t\t\t/* Root is always OK. */\n\t\t\tif (strcmp(ut->ut_user, \"root\") == 0) {\n\t\t\t\tuser_ok++;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t/* See if this is an allowed user. */\n\t\t\tfor(i = 0; i < 32 && downusers[i]; i++)\n\t\t\t\tif (!strncmp(downusers[i], ut->ut_user,\n\t\t\t\t    UT_NAMESIZE)) {\n\t\t\t\t\tuser_ok++;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t}\n\t\tendutent();\n\n\t\t/* See if user was allowed. */\n\t\tif (!user_ok) {\n\t\t\tif ((fp = fopen(CONSOLE, \"w\")) != NULL) {\n\t\t\t\tfprintf(fp, \"\\rshutdown: no authorized users \"\n\t\t\t\t\t\t\"logged in.\\r\\n\");\n\t\t\t\tfclose(fp);\n\t\t\t}\n\t\t\texit(1);\n\t\t}\n\t}\n\n\t/* Read pid of running shutdown from a file */\n\tif ((fp = fopen(SDPID, \"r\")) != NULL) {\n\t\tif (fscanf(fp, \"%d\", &pid) != 1)\n\t\t\tpid = 0;\n\t\tfclose(fp);\n\t}\n\n\t/* Read remaining words, skip time if needed. */\n\tmessage[0] = 0;\n\tfor(c = optind + (!cancel && !when[0]); c < argc; c++) {\n\t\tif (strlen(message) + strlen(argv[c]) + 4 > MESSAGELEN)\n\t\t\tbreak;\n  \t\tstrcat(message, argv[c]);\n  \t\tstrcat(message, \" \");\n\t}\n\tif (message[0]) strcat(message, \"\\r\\n\");\n\n\t/* See if we want to run or cancel. */\n\tif (cancel) {\n\t\tif (pid <= 0) {\n\t\t\tfprintf(stderr, \"shutdown: cannot find pid \"\n\t\t\t\t\t\"of running shutdown.\\n\");\n\t\t\texit(1);\n\t\t}\n\t\tinit_setenv(\"INIT_HALT\", NULL);\n\t\tif (kill(pid, SIGINT) < 0) {\n\t\t\tfprintf(stderr, \"shutdown: not running.\\n\");\n\t\t\texit(1);\n\t\t}\n\t\tif (message[0]) wall(message, 0);\n\t\texit(0);\n\t}\n  \n\t/* Check syntax. */\n\tif (when[0] == '\\0') {\n\t\tif (optind == argc) usage();\n                strncpy(when, argv[optind++], WHEN_SIZE - 1);\n\t}\n\n\t/* See if we are already running. */\n\tif (pid > 0 && kill(pid, 0) == 0) {\n\t\tfprintf(stderr, \"\\rshutdown: already running.\\r\\n\");\n\t\texit(1);\n\t}\n\n\t/* Extra check. */\n\tif (doself && down_level[0] != '0' && down_level[0] != '6') {\n\t\tfprintf(stderr,\n\t\t\"shutdown: can use \\\"-n\\\" for halt or reboot only.\\r\\n\");\n\t\texit(1);\n\t}\n\n\t/* Tell users what we're gonna do. */\n\tswitch(down_level[0]) {\n\t\tcase '0':\n\t\t\tstrncpy(newstate, \"for system halt\", STATELEN);\n\t\t\tbreak;\n\t\tcase '6':\n\t\t\tstrncpy(newstate, \"for reboot\", STATELEN);\n\t\t\tbreak;\n\t\tcase '1':\n\t\t\tstrncpy(newstate, \"to maintenance mode\", STATELEN);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tsnprintf(newstate, STATELEN, \"to runlevel %s\", down_level);\n\t\t\tbreak;\n\t}\n\n\t/* Go to the root directory */\n\tif (chdir(\"/\")) {\n\t\tfprintf(stderr, \"shutdown: chdir(/): %m\\n\");\n\t\texit(1);\n\t}\n\n\t/* Create a new PID file. */\n\tunlink(SDPID);\n\tumask(022);\n\tif ((fp = fopen(SDPID, \"w\")) != NULL) {\n\t\tfprintf(fp, \"%d\\n\", getpid());\n\t\tfclose(fp);\n\t} else if (errno != EROFS)\n\t\tfprintf(stderr, \"shutdown: warning: cannot open %s\\n\", SDPID);\n\n\t/*\n\t *\tCatch some common signals.\n\t */\n\tsignal(SIGQUIT, SIG_IGN);\n\tsignal(SIGCHLD, SIG_IGN);\n\tsignal(SIGHUP,  SIG_IGN);\n\tsignal(SIGTSTP, SIG_IGN);\n\tsignal(SIGTTIN, SIG_IGN);\n\tsignal(SIGTTOU, SIG_IGN);\n\n\tmemset(&sa, 0, sizeof(sa));\n\tsa.sa_handler = stopit;\n\tsigaction(SIGINT, &sa, NULL);\n\n\tif (fastboot)  close(open(FASTBOOT,  O_CREAT | O_RDWR, 0644));\n\tif (forcefsck) close(open(FORCEFSCK, O_CREAT | O_RDWR, 0644));\n\n\t/* Alias now and take care of old '+mins' notation. */\n\tif (!strcmp(when, \"now\")) strcpy(when, \"0\");\n\n        sp = when;\n\t/* Validate time argument. */\n\tfor ( ; *sp; sp++) {\n\t\tif (*sp != '+' && *sp != ':' && (*sp < '0' || *sp > '9'))\n\t\t\tusage();\n\t}\n\tsp = when;\n\t/* Decode shutdown time. */\n\tif (when[0] == '+') sp++;\n\tif (strchr(when, ':') == NULL) {\n\t\t/* Time in minutes. */\n\t\twt = atoi(sp);\n\t\tif (wt == 0 && sp[0] != '0') usage();\n\t} else {\n\t\tif (sscanf(when, \"%d:%2d\", &hours, &mins) != 2) usage();\n\t\t/* Time in hh:mm format. */\n\t\tif (when[0] == '+') {\n\t\t\t/* Hours and minutes from now */\n\t\t\tif (hours > 99999 || mins > 59) usage();\n\t\t\twt = (60*hours + mins);\n\t\t\tif (wt < 0) usage();\n\t\t} else {\n\t\t\t/* Time of day */\n\t\t\tif (hours > 23 || mins > 59) usage();\n\t\t\ttime(&t);\n\t\t\tlt = localtime(&t);\n\t\t\twt = (60*hours + mins) - (60*lt->tm_hour + lt->tm_min);\n\t\t\tif (wt < 0) wt += 1440;\n\t\t}\n\t}\n\t/* Shutdown NOW if time == 0 */\n\tif (wt == 0) issue_shutdown(halttype);\n\n        /* Rather than loop and reduce wt (wait time) once per minute,\n           we shall check the current time against the target time.\n           Then calculate the remaining waiting time based on the difference\n           between current time and target time.\n           This avoids missing shutdown time (target time) after the\n           computer has been asleep. -- Jesse\n        */\n        /* target time, in seconds = current time + wait time */\n        time(&t);\n        target_time = t + (60 * wt); \n\n\t/* Give warnings on regular intervals and finally shutdown. */\n\tif (wt < 15 && !needwarning(wt, quiet_level)) issue_warn(wt);\n\twhile(wt) {\n\t\tif (wt <= 5 && !didnolog) {\n\t\t\tdonologin(wt);\n\t\t\tdidnolog++;\n\t\t}\n\t\tif (needwarning(wt, quiet_level)) issue_warn(wt);\n\t\thardsleep(60);\n                time(&t);    /* get current time once per minute */\n                if (t >= target_time)     /* past the target */\n                  wt = 0;\n                else if ( (target_time - t) <= 60 )  /* less 1 min remains */\n                {\n                    hardsleep(target_time - t);\n                    wt = 0;\n                }\n                else                      /* more than 1 min remains */\n                   wt = (int) (target_time - t) / 60;\n\t}\n\tissue_shutdown(halttype);\n\n\treturn 0; /* Never happens */\n}\n"
  },
  {
    "path": "src/sulogin.c",
    "content": "/*\n * sulogin\tThis program gives Linux machines a reasonable\n *\t\tsecure way to boot single user. It forces the\n *\t\tuser to supply the root password before a\n *\t\tshell is started.\n *\n *\t\tIf there is a shadow password file and the\n *\t\tencrypted root password is \"x\" the shadow\n *\t\tpassword will be used.\n *\n * Version:\t@(#)sulogin 2.85-3 23-Apr-2003 miquels@cistron.nl\n *\n * Copyright (C) 1998-2003 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n\n#include <sys/mman.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/wait.h>\n#ifdef __linux__\n#include <sys/sysmacros.h> \n#endif\n#include <stdio.h>\n#include <string.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <crypt.h>    /* added to make this compile on Fedora 28 */\n#include <fcntl.h>\n#include <signal.h>\n#include <pwd.h>\n#include <shadow.h>\n#include <termios.h>\n#include <sys/ttydefaults.h>\n#include <errno.h>\n#include <sys/ioctl.h>\n#ifdef __linux__\n#  include <sys/statfs.h>\n#  include <sys/mount.h>\n#  include <linux/magic.h>\n#  include <linux/major.h>\n#  ifndef TMPFS_MAGIC\n#    define TMPFS_MAGIC\t\t0x01021994\n#  endif\n#  ifndef MNT_DETACH\n#    define MNT_DETACH\t\t2\n#  endif\n#  define dovoid(f)\t\tif ((f)){}\n#endif\n\n#define BS  CTRL('h')\n#define NL  CTRL('j')\n#define CR  CTRL('m')\n\n#ifdef WITH_SELINUX\n#  include <selinux/selinux.h>\n#  include <selinux/get_context_list.h>\n#endif\n\n#define PASSWORD_LENGTH 256\n\n#include \"consoles.h\"\n#define CONMAX\t\t16\n\n#define CHECK_DES\t1\n#define CHECK_MD5\t1\n\n#define F_PASSWD\t\"/etc/passwd\"\n#define F_SHADOW\t\"/etc/shadow\"\n#define BINSH\t\t\"/bin/sh\"\n#define STATICSH\t\"/bin/sash\"\n\nchar *Version = \"@(#)sulogin 2.85-3 23-Apr-2003 miquels@cistron.nl\";\n\nstatic int timeout;\nstatic int profile;\nstatic volatile uint32_t openfd;\t\t/* Remember higher file descriptors */\nstatic volatile uint32_t *usemask;\n\nstatic sighandler_t saved_sigint  = SIG_DFL;\nstatic sighandler_t saved_sigtstp = SIG_DFL;\nstatic sighandler_t saved_sigquit = SIG_DFL;\nstatic sighandler_t saved_sighup  = SIG_DFL;\n\nstatic volatile sig_atomic_t alarm_rised;\nstatic volatile sig_atomic_t sigchild;\n\n#ifndef IUCLC\n#  define IUCLC\t0\n#endif\n\n/*\n *\tFix the tty modes and set reasonable defaults.\n */\nstatic\nvoid tcinit(struct console *con)\n{\n\tint serial, flags;\n\tstruct termios *tio = &con->tio;\n\tint fd = con->fd;\n\n\t/* Expected error */\n\tserial = errno = 0;\n\n\t/* Get line attributes */\n\tif (tcgetattr(fd, tio) < 0) {\n\t\tcon->flags |= CON_NOTTY;\n\t\treturn;\n\t}\n\n\t/* Handle serial lines here */\n\tif (ioctl (fd, TIOCMGET, (char*)&serial) == 0) {\n\t\tspeed_t ispeed, ospeed;\n\t\tstruct winsize ws;\n\n\t\t/* this is a modem line */\n\t\tcon->flags |= CON_SERIAL;\n\n\t\t/* Flush input and output queues on modem lines */\n\t\t(void) tcflush(fd, TCIOFLUSH);\n\n\t\tispeed = cfgetispeed(tio);\n\t\tospeed = cfgetospeed(tio);\n\t\t\n\t\tif (!ispeed) ispeed = TTYDEF_SPEED;\n\t\tif (!ospeed) ospeed = TTYDEF_SPEED;\n\n\t\ttio->c_iflag = tio->c_lflag = tio->c_oflag = 0;\n\t\ttio->c_cflag = CREAD | CS8 | HUPCL | (tio->c_cflag & CLOCAL);\n\n\t\tcfsetispeed(tio, ispeed);\n\t\tcfsetospeed(tio, ospeed);\n\n#ifndef __GNU__\n\t\ttio->c_line         = 0;\n#endif\n\t\ttio->c_cc[VTIME]    = 0;\n\t\ttio->c_cc[VMIN]     = 1;\n\n\t\tif (ioctl(fd, TIOCGWINSZ, &ws) == 0) {\n\t\t\tint set = 0;\n\t\t\tif (ws.ws_row == 0) {\n\t\t\t\tws.ws_row = 24;\n\t\t\t\tset++;\n\t\t\t}\n\t\t\tif (ws.ws_col == 0) {\n\t\t\t\tws.ws_col = 80;\n\t\t\t\tset++;\n\t\t\t}\n\t\t\t(void)ioctl(fd, TIOCSWINSZ, &ws);\n\t\t}\n\n\t\tgoto setattr;\n\t}\n#if defined(SANE_TIO) && (SANE_TIO == 1)\n\t/*\n\t * Use defaults of <sys/ttydefaults.h> for base settings\n\t * of a local terminal line like a virtual console.\n\t */\n\ttio->c_iflag |= TTYDEF_IFLAG;\n\ttio->c_oflag |= TTYDEF_OFLAG;\n\ttio->c_lflag |= TTYDEF_LFLAG;\n# ifdef CBAUD\n\ttio->c_lflag &= ~CBAUD;\n# endif\n\ttio->c_cflag |= (B38400 | TTYDEF_CFLAG);\n\n\t/* Sane setting, allow eight bit characters, no carriage return delay\n\t * the same result as `stty sane cr0 pass8'\n\t */\n\ttio->c_iflag |=  (BRKINT | ICRNL | IMAXBEL);\n\ttio->c_iflag &= ~(IGNBRK | INLCR | IGNCR | IXOFF | IUCLC | IXANY | INPCK | ISTRIP);\n\ttio->c_oflag |=  (OPOST | ONLCR | NL0 | CR0 | TAB0 | BS0 | VT0 | FF0);\n\ttio->c_oflag &= ~(OLCUC | OCRNL | ONOCR | ONLRET | OFILL | OFDEL |\\\n\t\t\t NLDLY|CRDLY|TABDLY|BSDLY|VTDLY|FFDLY);\n\ttio->c_lflag |=  (ISIG | ICANON | IEXTEN | ECHO|ECHOE|ECHOK|ECHOKE);\n\ttio->c_lflag &= ~(ECHONL|ECHOCTL|ECHOPRT | NOFLSH | XCASE | TOSTOP);\n\ttio->c_cflag |=  (CREAD | CS8 | HUPCL);\n\ttio->c_cflag &= ~(PARODD | PARENB);\n\n\t/*\n\t * VTIME and VMIN can overlap with VEOF and VEOL since they are\n\t * only used for non-canonical mode. We just set the at the\n\t * beginning, so nothing bad should happen.\n\t */\n\ttio->c_cc[VTIME]    = 0;\n\ttio->c_cc[VMIN]     = CMIN;\n\ttio->c_cc[VINTR]    = CINTR;\n\ttio->c_cc[VQUIT]    = CQUIT;\n\ttio->c_cc[VERASE]   = CERASE; /* ASCII DEL (0177) */\n\ttio->c_cc[VKILL]    = CKILL;\n\ttio->c_cc[VEOF]     = CEOF;\n# ifdef VSWTC\n\ttio->c_cc[VSWTC]    = _POSIX_VDISABLE;\n# elif defined(VSWTCH)\n\ttio->c_cc[VSWTCH]   = _POSIX_VDISABLE;\n# endif\n\ttio->c_cc[VSTART]   = CSTART;\n\ttio->c_cc[VSTOP]    = CSTOP;\n\ttio->c_cc[VSUSP]    = CSUSP;\n\ttio->c_cc[VEOL]     = _POSIX_VDISABLE;\n\ttio->c_cc[VREPRINT] = CREPRINT;\n\ttio->c_cc[VDISCARD] = CDISCARD;\n\ttio->c_cc[VWERASE]  = CWERASE;\n\ttio->c_cc[VLNEXT]   = CLNEXT;\n\ttio->c_cc[VEOL2]    = _POSIX_VDISABLE;\n#endif\nsetattr:\n\t/* Set line attributes */\n\ttcsetattr(fd, TCSANOW, tio);\n\n\t/* Enable blocking mode for read and write */\n\tif ((flags = fcntl(fd, F_GETFL, 0)) != -1)\n\t\t(void)fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);\n}\n\n\n/*\n *\tFinalize the tty modes on modem lines.\n */\nstatic\nvoid tcfinal(struct console *con)\n{\n\tstruct termios *tio = &con->tio;\n\tint fd = con->fd;\n\n\t/* Expected error */\n\terrno = 0;\n\n\tif ((con->flags & CON_SERIAL) == 0) {\n#ifdef __linux__\n\t\tsetenv(\"TERM\", \"linux\", 1);\n#else\n\t\tsetenv(\"TERM\", \"vt100\", 1);\n#endif\n\t\treturn;\n\t}\n\tif (con->flags & CON_NOTTY)\n\t\treturn;\n\tsetenv(\"TERM\", \"vt100\", 1);\n\n\ttio->c_iflag |= (IXON | IXOFF);\n\ttio->c_lflag |= (ICANON | ISIG | ECHO|ECHOE|ECHOK|ECHOKE);\n\ttio->c_oflag |= OPOST;\n\n\ttio->c_cc[VINTR]    = CINTR;\n\ttio->c_cc[VQUIT]    = CQUIT;\n\ttio->c_cc[VERASE]   = con->cp.erase;\n\ttio->c_cc[VKILL]    = con->cp.kill;\n\ttio->c_cc[VEOF]     = CEOF;\n#ifdef VSWTC\n\ttio->c_cc[VSWTC]    = _POSIX_VDISABLE;\n#elif defined(VSWTCH)\n\ttio->c_cc[VSWTCH]   = _POSIX_VDISABLE;\n#endif\n\ttio->c_cc[VSTART]   = CSTART;\n\ttio->c_cc[VSTOP]    = CSTOP;\n\ttio->c_cc[VSUSP]    = CSUSP;\n\ttio->c_cc[VEOL]     = _POSIX_VDISABLE;\n\n\tif (con->cp.eol == CR) {\n\t\ttio->c_iflag |= ICRNL;\n\t\ttio->c_iflag &= ~(INLCR|IGNCR);\n\t\ttio->c_oflag |= ONLCR;\n\t\ttio->c_oflag &= ~(OCRNL|ONLRET);\n\t}\n\n\tswitch (con->cp.parity) {\n\tdefault:\n\tcase 0:\n\t\ttio->c_cflag &= ~(PARODD | PARENB);\n\t\ttio->c_iflag &= ~(INPCK | ISTRIP);\n\t\tbreak;\n\tcase 1:\t\t\t\t/* odd parity */\n\t\ttio->c_cflag |= PARODD;\n\t\t/* fall through */\n\tcase 2:\t\t\t\t/* even parity */\n\t\ttio->c_cflag |= PARENB;\n\t\ttio->c_iflag |= (INPCK | ISTRIP);\n\t\t/* fall through */\n\tcase (1 | 2):\t\t\t/* no parity bit */\n\t\ttio->c_cflag &= ~CSIZE;\n\t\ttio->c_cflag |= CS7;\n\t\tbreak;\n\t}\n\n\t/* Set line attributes */\n\t(void)tcsetattr(fd, TCSANOW, tio);\n}\n\n/*\n *\tCalled at timeout.\n */\nstatic\n# ifdef __GNUC__\n__attribute__((__noinline__))\nvoid alrm_handler(int sig __attribute__((unused)))\n# else\nvoid alrm_handler(int sig)\n# endif\n{\n\talarm_rised++;\n}\n\n/*\n *\tCalled at timeout.\n */\nstatic\n# ifdef __GNUC__\n__attribute__((__noinline__))\nvoid chld_handler(int sig __attribute__((unused)))\n# else\nvoid chld_handler(int sig)\n# endif\n{\n\tsigchild++;\n}\n\n/*\n *\tSee if an encrypted password is valid. The encrypted\n *\tpassword is checked for traditional-style DES and\n *\tFreeBSD-style MD5 encryption.\n */\nstatic\nint valid(const char *pass)\n{\n\tconst char *s;\n\tchar id[5];\n\tsize_t len;\n\toff_t off;\n\n\tif (pass[0] == 0) return 1;\n#if CHECK_MD5\n\tif (pass[0] != '$') goto check_des;\n\n\t/*\n\t *\tup to 4 bytes for the signature e.g. $1$\n\t */\n\tfor(s = pass+1; *s && *s != '$'; s++)\n\t\t;\n\tif (*s++ != '$') return 0;\n\tif ((off = (off_t)(s-pass)) > 4 || off < 3) return 0;\n\n\tmemset(id, '\\0', sizeof(id));\n\tstrncpy(id, pass, off);\n\n\t/*\n\t *\tup to 16 bytes for the salt\n\t */\n\tfor(; *s && *s != '$'; s++)\n\t\t;\n\tif (*s++ != '$') return 0;\n\tif ((off_t)(s-pass) > 16) return 0;\n\tlen = strlen(s);\n\n\t/*\n\t *\tthe MD5 hash (128 bits or 16 bytes) encoded in base64 = 22 bytes\n\t */\n\tif ((strcmp(id, \"$1$\") == 0) && (len < 22 || len > 24)) return 0;\n\n\t/*\n\t *\tthe SHA-256 hash 43 bytes\n\t */\n\tif ((strcmp(id, \"$5$\") == 0) && (len < 42 || len > 44)) return 0;\n\n\t/*\n\t *      the SHA-512 hash 86 bytes\n\t */\n\tif ((strcmp(id, \"$6$\") == 0) && (len < 85 || len > 87)) return 0;\n\n\t/*\n\t *\te.g. Blowfish hash\n\t */\n\treturn 1;\ncheck_des:\n#endif\n#if CHECK_DES\n\tif (strlen(pass) != 13) return 0;\n\tfor (s = pass; *s; s++) {\n\t\tif ((*s < '0' || *s > '9') &&\n\t\t    (*s < 'a' || *s > 'z') &&\n\t\t    (*s < 'A' || *s > 'Z') &&\n\t\t    *s != '.' && *s != '/') return 0;\n\t}\n#endif\n\treturn 1;\n}\n\n/*\n *\tSet a variable if the value is not NULL.\n */\nstatic\nvoid set(char **var, char *val)\n{\n\tif (val) *var = val;\n}\n\n/*\n *\tGet the root password entry.\n */\nstatic\nstruct passwd *getrootpwent(int try_manually)\n{\n\tstatic struct passwd pwd;\n\tstruct passwd *pw;\n\tstruct spwd *spw;\n\tFILE *fp;\n\tstatic char line[PASSWORD_LENGTH];\n\tstatic char sline[PASSWORD_LENGTH];\n\tchar *p;\n\n\t/*\n\t *\tFirst, we try to get the password the standard\n\t *\tway using normal library calls.\n\t */\n\tif ((pw = getpwnam(\"root\")) &&\n\t    !strcmp(pw->pw_passwd, \"x\") &&\n\t    (spw = getspnam(\"root\")))\n\t\tpw->pw_passwd = spw->sp_pwdp;\n\tif (pw || !try_manually) return pw;\n\n\t/*\n\t *\tIf we come here, we could not retrieve the root\n\t *\tpassword through library calls and we try to\n\t *\tread the password and shadow files manually.\n\t */\n\tpwd.pw_name = \"root\";\n\tpwd.pw_passwd = \"\";\n\tpwd.pw_gecos = \"Super User\";\n\tpwd.pw_dir = \"/\";\n\tpwd.pw_shell = \"\";\n\tpwd.pw_uid = 0;\n\tpwd.pw_gid = 0;\n\n\tif ((fp = fopen(F_PASSWD, \"r\")) == NULL) {\n\t\tperror(F_PASSWD);\n\t\treturn &pwd;\n\t}\n\n\t/*\n\t *\tFind root in the password file.\n\t */\n\twhile((p = fgets(line, PASSWORD_LENGTH, fp)) != NULL) {\n\t\tif (strncmp(line, \"root:\", 5) != 0)\n\t\t\tcontinue;\n\t\tp += 5;\n\t\tset(&pwd.pw_passwd, strsep(&p, \":\"));\n\t\t(void)strsep(&p, \":\");\n\t\t(void)strsep(&p, \":\");\n\t\tset(&pwd.pw_gecos, strsep(&p, \":\"));\n\t\tset(&pwd.pw_dir, strsep(&p, \":\"));\n\t\tset(&pwd.pw_shell, strsep(&p, \"\\n\"));\n\t\tp = line;\n\t\tbreak;\n\t}\n\tfclose(fp);\n\n\t/*\n\t *\tIf the encrypted password is valid\n\t *\tor not found, return.\n\t */\n\tif (p == NULL) {\n\t\tfprintf(stderr, \"sulogin: %s: no entry for root\\n\\r\", F_PASSWD);\n\t\treturn &pwd;\n\t}\n\tif (valid(pwd.pw_passwd)) return &pwd;\n\n\t/*\n\t *\tThe password is invalid. If there is a\n\t *\tshadow password, try it.\n\t */\n\tstrcpy(pwd.pw_passwd, \"\");\n\tif ((fp = fopen(F_SHADOW, \"r\")) == NULL) {\n\t\tfprintf(stderr, \"sulogin: %s: root password garbled\\n\\r\", F_PASSWD);\n\t\treturn &pwd;\n\t}\n\twhile((p = fgets(sline, PASSWORD_LENGTH, fp)) != NULL) {\n\t\tif (strncmp(sline, \"root:\", 5) != 0)\n\t\t\tcontinue;\n\t\tp += 5;\n\t\tset(&pwd.pw_passwd, strsep(&p, \":\"));\n\t\tbreak;\n\t}\n\tfclose(fp);\n\n\t/*\n\t *\tIf the password is still invalid,\n\t *\tNULL it, and return.\n\t */\n\tif (p == NULL) {\n\t\tfprintf(stderr, \"sulogin: %s: no entry for root\\n\\r\", F_SHADOW);\n\t\tstrcpy(pwd.pw_passwd, \"\");\n\t}\n\tif (!valid(pwd.pw_passwd)) {\n\t\tfprintf(stderr, \"sulogin: %s: root password garbled\\n\\r\", F_SHADOW);\n\t\tstrcpy(pwd.pw_passwd, \"\"); }\n\treturn &pwd;\n}\n\n/*\n *\tAsk by prompt for the password.\n */\nstatic\nvoid doprompt(const char *crypted, struct console *con)\n{\n\tstruct termios tty;\n\n\tif (con->flags & CON_SERIAL) {\n\t\ttty = con->tio;\n\t\t/*\n\t\t * For prompting: map NL in output to CR-NL\n\t\t * otherwise we may see stairs in the output.\n\t\t */\n\t\ttty.c_oflag |= (ONLCR | OPOST);\n\t\t(void) tcsetattr(con->fd, TCSADRAIN, &tty);\n\t}\n\tif (con->file == (FILE*)0) {\n\t\tif  ((con->file = fdopen(con->fd, \"r+\")) == (FILE*)0)\n\t\t\tgoto err;\n\t}\n#if defined(USE_ONELINE)\n\tif (crypted[0])\n\t\tfprintf(con->file, \"Give root password for login: \");\n\telse\n\t\tfprintf(con->file, \"Press enter for login: \");\n#else\n\tif (crypted[0])\n\t\tfprintf(con->file, \"Give root password for maintenance\\n\\r\");\n\telse\n\t\tfprintf(con->file, \"Press enter for maintenance\");\n\tfprintf(con->file, \"(or type Control-D to continue): \");\n#endif\n\tfflush(con->file);\nerr:\n\tif (con->flags & CON_SERIAL)\n\t\t(void) tcsetattr(con->fd, TCSADRAIN, &con->tio);\n}\n\n/*\n * Make sure to have an own session and controlling terminal\n */\nstatic\nvoid setup(struct console *con)\n{\n\tpid_t pid, pgrp, ppgrp, ttypgrp;\n\tint fd;\n\n\tif (con->flags & CON_NOTTY)\n\t\treturn;\n\tfd = con->fd;\n\n\t/*\n\t *\tOnly go through this trouble if the new\n\t *\ttty doesn't fall in this process group.\n\t */\n\tpid = getpid();\n\tpgrp = getpgid(0);\n\tppgrp = getpgid(getppid());\n\tttypgrp = tcgetpgrp(fd);\n\n\tif (pgrp != ttypgrp && ppgrp != ttypgrp) {\n\t\tif (pid != getsid(0)) {\n\t\t\tif (pid == getpgid(0))\n\t\t\t\tsetpgid(0, getpgid(getppid()));\n\t\t\tsetsid();\n\t\t}\n\n\t\tsignal(SIGHUP, SIG_IGN);\n\t\tif (ttypgrp > 0)\n\t\t\tioctl(0, TIOCNOTTY, (char *)1);\n\t\tsignal(SIGHUP, saved_sighup);\n\t\tif (fd > 0) close(0);\n\t\tif (fd > 1) close(1);\n\t\tif (fd > 2) close(2);\n\n\t\tioctl(fd, TIOCSCTTY, (char *)1);\n\t\ttcsetpgrp(fd, ppgrp);\n\t}\n\tdup2(fd, 0);\n\tdup2(fd, 1);\n\tdup2(fd, 2);\n\tcon->fd = 0;\n\n\tfor (fd = 3; fd < 32; fd++) {\n\t\tif (openfd & (1<<fd)) {\n\t\t\tclose(fd);\n\t\t\topenfd &= ~(1<<fd);\n\t\t}\n\t}\n}\n\n/*\n *\tFetch the password. Note that there is no\n *\tdefault timeout as we normally skip this during boot.\n */\nstatic\nchar *getpasswd(struct console *con)\n{\n\tstatic char pass[128], *ptr;\n\tstruct sigaction sa;\n\tstruct chardata *cp;\n\tstruct termios tty;\n\tchar *ret = pass;\n\tunsigned char tc;\n\tchar c, ascval;\n\tint eightbit;\n\tint fd;\n\n\tif (con->flags & CON_NOTTY)\n\t\tgoto out;\n\tfd = con->fd;\n\tcp = &con->cp;\n\n\ttty = con->tio;\n\ttty.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);\n\ttty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP|ISIG);\n\ttc = (tcsetattr(fd, TCSAFLUSH, &tty) == 0);\n\n\tsa.sa_handler = alrm_handler;\n\tsa.sa_flags = 0;\n\tsigaction(SIGALRM, &sa, NULL);\n\tif (timeout) alarm(timeout);\n\n\tptr = &pass[0];\n\tcp->eol = *ptr = '\\0';\n\n\teightbit = ((con->flags & CON_SERIAL) == 0 || (tty.c_cflag & (PARODD|PARENB)) == 0);\n\twhile (cp->eol == '\\0') {\n\t\tif (read(fd, &c, 1) < 1) {\n\t\t\tif (errno == EINTR || errno == EAGAIN) {\n\t\t\t\tusleep(1000);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tret = (char*)0;\n\t\t\tswitch (errno) {\n\t\t\tcase 0:\n\t\t\tcase EIO:\n\t\t\tcase ESRCH:\n\t\t\tcase EINVAL:\n\t\t\tcase ENOENT:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tfprintf(stderr, \"sulogin: read(%s): %m\\n\\r\", con->tty);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tgoto quit;\n\t\t}\n\n\t\tif (eightbit)\n\t\t\tascval = c;\n\t\telse if (c != (ascval = (c & 0177))) {\n\t\t\tuint32_t bits, mask;\n\t\t\tfor (bits = 1, mask = 1; mask & 0177; mask <<= 1) {\n\t\t\t\tif (mask & ascval)\n\t\t\t\t\tbits++;\n\t\t\t}\n\t\t\tcp->parity |= ((bits & 1) ? 1 : 2);\n\t\t}\n\n\t\tswitch (ascval) {\n\t\tcase 0:\n\t\t\t*ptr = '\\0';\n\t\t\tgoto quit; \n\t\tcase CR:\n\t\tcase NL:\n\t\t\t*ptr = '\\0';\n\t\t\tcp->eol = ascval;\n\t\t\tbreak;\n\t\tcase BS:\n\t\tcase CERASE:\n\t\t\tcp->erase = ascval;\n\t\t\tif (ptr > &pass[0])\n\t\t\t\tptr--;\n\t\t\tbreak;\n\t\tcase CKILL:\n\t\t\tcp->kill = ascval;\n\t\t\twhile (ptr > &pass[0])\n\t\t\t\tptr--;\n\t\t\tbreak;\n\t\tcase CEOF:\n\t\t\tgoto quit;\t\t\n\t\tdefault:\n\t\t\tif ((size_t)(ptr - &pass[0]) >= (sizeof(pass) -1 )) {\n\t\t\t\t fprintf(stderr, \"sulogin: input overrun at %s\\n\\r\", con->tty);\n\t\t\t\t ret = (char*)0;\n\t\t\t\t goto quit;\n\t\t\t}\n\t\t\t*ptr++ = ascval;\n\t\t\tbreak;\n\t\t}\n\t}\nquit:\n\talarm(0);\n\tif (tc)\n\t\t(void)tcsetattr(fd, TCSAFLUSH, &con->tio);\n\tif (ret && *ret != '\\0')\n\t\ttcfinal(con);\n\tprintf(\"\\r\\n\");\nout:\n\treturn ret;\n}\n\n/*\n *\tPassword was OK, execute a shell.\n */\nstatic\nvoid sushell(struct passwd *pwd)\n{\n\tchar shell[128];\n\tchar home[128];\n\tchar *p;\n\tchar *sushell;\n\n\t/*\n\t *\tSet directory and shell.\n\t */\n\tif (chdir(pwd->pw_dir) < 0) {\n\t\tif (chdir(\"/\") < 0)\n\t\t\tfprintf(stderr, \"sulogin: change of working directory failed: %m\\n\\r\");\n\t}\n\tif ((p = getenv(\"SUSHELL\")) != NULL)\n\t\tsushell = p;\n\telse if ((p = getenv(\"sushell\")) != NULL)\n\t\tsushell = p;\n\telse {\n\t\tif (pwd->pw_shell[0])\n\t\t\tsushell = pwd->pw_shell;\n\t\telse\n\t\t\tsushell = BINSH;\n\t}\n\tif ((p = strrchr(sushell, '/')) == NULL)\n\t\tp = sushell;\n\telse\n\t\tp++;\n\tsnprintf(shell, sizeof(shell), profile ? \"-%s\" : \"%s\", p);\n\n\t/*\n\t *\tSet some important environment variables.\n\t */\n\tif (getcwd(home, sizeof(home)) == (char*)0)\n\t\tstrcpy(home, \"/\");\n\tsetenv(\"HOME\", home, 1);\n\tsetenv(\"LOGNAME\", \"root\", 1);\n\tsetenv(\"USER\", \"root\", 1);\n\tif (!profile)\n\t\tsetenv(\"SHLVL\",\"0\",1);\n\n\t/*\n\t *\tTry to execute a shell.\n\t */\n\tsetenv(\"SHELL\", sushell, 1);\n\tsignal(SIGINT,  saved_sigint);\n\tsignal(SIGTSTP, saved_sigtstp);\n\tsignal(SIGQUIT, saved_sigquit);\n\tsignal(SIGHUP,  SIG_DFL);\n#ifdef WITH_SELINUX\n\tif (is_selinux_enabled() > 0) {\n\t\tsecurity_context_t scon=NULL;\n\t\tchar *seuser=NULL;\n\t\tchar *level=NULL;\n\t\tif (getseuserbyname(\"root\", &seuser, &level) == 0)\n\t\t\tif (get_default_context_with_level(seuser, level, 0, &scon) == 0) {\n\t\t\t\tif (setexeccon(scon) != 0) \n\t\t\t\t\tfprintf(stderr, \"sulogin: setexeccon failed\\n\\r\");\n\t\t\t\tfreecon(scon);\n\t\t\t}\n\t\tfree(seuser);\n\t\tfree(level);\n\t}\n#endif\n\texecl(sushell, shell, NULL);\n\tperror(sushell);\n\n\tsetenv(\"SHELL\", BINSH, 1);\n\texecl(BINSH, profile ? \"-sh\" : \"sh\", NULL);\n\tperror(BINSH);\n\n\t/* Fall back to statically linked shell if both the users shell\n\t   and /bin/sh failed to execute. */\n\tsetenv(\"SHELL\", STATICSH, 1);\n\texecl(STATICSH, STATICSH, NULL);\n\tperror(STATICSH);\n}\n\n#ifdef __linux__\n/*\n * Make C library standard calls like ttyname(3) work.\n */\nstatic uint32_t mounts;\n#define MNT_PROCFS\t0x0001\n#define MNT_DEVTMPFS\t0x0002\n\nstatic __attribute__((__noinline__))\nvoid putmounts(void)\n{\n\tif (mounts & MNT_DEVTMPFS)\n\t\tumount2(\"/dev\", MNT_DETACH);\n\tif (mounts & MNT_PROCFS)\n\t\tumount2(\"/proc\", MNT_DETACH);\n}\n\nstatic __attribute__((__constructor__))\nvoid getmounts(void)\n{\n\tstruct statfs st;\n\tif (statfs(\"/proc\", &st) == 0 && st.f_type != PROC_SUPER_MAGIC) {\n\t\tif (mount(\"proc\", \"/proc\", \"proc\", MS_RELATIME, NULL) == 0)\n\t\t\tmounts |= MNT_PROCFS;\n\t}\n\tif (statfs(\"/dev\", &st) == 0 && st.f_type != TMPFS_MAGIC) {\n\t\tif (mount(\"devtmpfs\", \"/dev\", \"devtmpfs\", MS_RELATIME, \"mode=0755,nr_inodes=0\") == 0) {\n\t\t\tmounts |= MNT_DEVTMPFS;\n\t\t\t(void)mknod(\"/dev/console\", S_IFCHR|S_IRUSR|S_IWUSR, makedev(TTYAUX_MAJOR, 1));\n\t\t\tif (symlink(\"/proc/self/fd\", \"/dev/fd\") == 0) {\n\t\t\t\tdovoid(symlink(\"fd/0\", \"/dev/stdin\"));\n\t\t\t\tdovoid(symlink(\"fd/1\", \"/dev/stdout\"));\n\t\t\t\tdovoid(symlink(\"fd/2\", \"/dev/stderr\"));\n\t\t\t}\n\t\t}\n\t}\n\tif (mounts) atexit(putmounts);\n}\n#endif\n\nstatic\nvoid usage(void)\n{\n\tfprintf(stderr, \"Usage: sulogin [-e] [-p] [-t timeout] [tty device]\\n\\r\");\n}\n\nint main(int argc, char **argv)\n{\n\tchar *tty = NULL;\n\tstruct passwd *pwd;\n\tint c, status = 0;\n\tint reconnect = 0;\n\tint opt_e = 0;\n\tstruct console *con;\n\tpid_t pid;\n\n\t/*\n\t * We are init. We hence need to set uo a session.\n\t */\n\tif ((pid = getpid()) == 1) {\n\t\tsetsid();\n\t\t(void)ioctl(0, TIOCSCTTY, (char *)1);\n\t}\n\n\t/*\n\t * See if we have a timeout flag.\n\t */\n\topterr = 0;\n\twhile((c = getopt(argc, argv, \"ept:\")) != EOF) switch(c) {\n\t\tcase 't':\n\t\t\ttimeout = atoi(optarg);\n\t\t\tbreak;\n\t\tcase 'p':\n\t\t\tprofile = 1;\n\t\t\tbreak;\n\t\tcase 'e':\n\t\t\topt_e = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tusage();\n\t\t\t/* Do not exit! */\n\t\t\tbreak;\n\t}\n\n\tif (geteuid() != 0) {\n\t\tfprintf(stderr, \"sulogin: only root can run sulogin.\\n\\r\");\n\t\texit(1);\n\t}\n\n\tsaved_sigint  = signal(SIGINT,  SIG_IGN);\n\tsaved_sigquit = signal(SIGQUIT, SIG_IGN);\n\tsaved_sigtstp = signal(SIGTSTP, SIG_IGN);\n\tsaved_sighup  = signal(SIGHUP,  SIG_IGN);\n\n\t/*\n\t * See if we need to open an other tty device.\n\t */\n\tif (optind < argc)\n\t\ttty = argv[optind];\n\tif (!tty || *tty == '\\0') \n\t\ttty = getenv(\"CONSOLE\");\n\n\t/*\n\t * Detect possible consoles, use stdin as fallback.\n\t * If an optional tty is given, reconnect it to stdin.\n\t */\n\treconnect = detect_consoles(tty, 0);\n\n\t/*\n\t * Should not happen\n\t */\n\tif (!consoles) {\n\t\tif (!errno)\n\t\t\terrno = ENOMEM;\n\t\tfprintf(stderr, \"sulogin: cannot open console: %m\\n\\r\");\n\t\texit(1);\n\t}\n\n\t/*\n\t * If previous stdin was not the speified tty and therefore reconnected\n\t * to the specified tty also reconnect stdout and stderr.\n\t */\n\tif (reconnect) {\n\t\tif (isatty(1) == 0)\n\t\t\tdup2(0, 1);\n\t\tif (isatty(2) == 0)\n\t\t\tdup2(0, 2);\n\t}\n\n\t/*\n\t *\tGet the root password.\n\t */\n\tif ((pwd = getrootpwent(opt_e)) == NULL) {\n\t\tfprintf(stderr, \"sulogin: cannot open password database!\\n\\r\");\n\t\tsleep(2);\n\t}\n\n\t/*\n\t * Prompt for input on the consoles\n\t */\n\tfor (con = consoles; con && con->id < CONMAX; con = con->next) {\n\t\tif (con->fd >= 0) {\n\t\t\topenfd |= (1<<con->fd);\n\t\t\ttcinit(con);\n\t\t\tcontinue;\n\t\t}\n\t\tif ((con->fd = open(con->tty, O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0)\n\t\t\tcontinue;\n\t\topenfd |= (1<<con->fd);\n\t\ttcinit(con);\n\t}\n\tcon = consoles;\n\tusemask = (uint32_t*)mmap(NULL, sizeof(uint32_t), PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED, -1, 0);\n\n\tif (con->next == (struct console*)0)\n\t\tgoto nofork;\n\n\tsignal(SIGCHLD, chld_handler);\n\tdo {\n\t\tswitch ((con->pid = fork())) {\n\t\tcase 0:\n\t\t\tsignal(SIGCHLD,  SIG_DFL);\n\t\t\t/* fall through */\n\t\tnofork:\n\t\t\tsetup(con);\n\t\t\twhile (1) {\n\t\t\t\tchar *passwd = pwd->pw_passwd;\n\t\t\t\tchar *answer;\n\t\t\t\tint failed = 0, doshell = 0;\n\n\t\t\t\tdoprompt(passwd, con);\n\t\t\t\tif ((answer = getpasswd(con)) == NULL)\n\t\t\t\t\tbreak;\n\n\t\t\t\tif (passwd[0] == '\\0')\n\t\t\t\t\tdoshell++;\n\t\t\t\telse {\n\t\t\t\t\tchar *cryptbuf;\n\t\t\t\t\tcryptbuf = crypt(answer, passwd);\n\t\t\t\t\tif (cryptbuf == NULL)\n\t\t\t\t\t\tfprintf(stderr, \"sulogin: crypt failed: %m\\n\\r\");\n\t\t\t\t\telse if (strcmp(cryptbuf, pwd->pw_passwd) == 0)\n\t\t\t\t\t\tdoshell++;\n\t\t\t\t}\n\n\t\t\t\tif (doshell) {\n\t\t\t\t\t*usemask |= (1<<con->id);\n\t\t\t\t\tsushell(pwd);\n\t\t\t\t\t*usemask &= ~(1<<con->id);\n\t\t\t\t\tfailed++;\n\t\t\t\t}\n\n\t\t\t\tsignal(SIGQUIT, SIG_IGN);\n\t\t\t\tsignal(SIGTSTP, SIG_IGN);\n\t\t\t\tsignal(SIGINT,  SIG_IGN);\n\n\t\t\t\tif (failed) {\n\t\t\t\t\tfprintf(stderr, \"sulogin: can not execute su shell.\\n\\r\");\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tfprintf(stderr, \"Login incorrect.\\n\\r\");\n\t\t\t\tsleep(3);\n\t\t\t}\n\t\t\tif (alarm_rised) {\n\t\t\t\ttcfinal(con);\n\t\t\t\tfprintf(stderr, \"Timed out.\\n\\r\");\n\t\t\t}\n\t\t\t/*\n\t\t\t *\tUser may pressed Control-D.\n\t\t\t */\n\t\t\texit(0);\n\t\tcase -1:\n\t\t\tfprintf(stderr, \"sulogin: can not fork: %m\\n\\r\");\n\t\t\t/* fall through */\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t} while ((con = con->next) && (con->id < CONMAX));\n\n\twhile ((pid = wait(&status))) {\n\t\tif (errno == ECHILD)\n\t\t\tbreak;\n\t\tif (pid < 0)\n\t\t\tcontinue;\n\t\tfor (con = consoles; con && con->id < CONMAX; con = con->next) {\n\t\t\tif (con->pid == pid) {\n\t\t\t\t*usemask &= ~(1<<con->id);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (kill(con->pid, 0) < 0) {\n\t\t\t\t*usemask &= ~(1<<con->id);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (*usemask & (1<<con->id))\n\t\t\t\tcontinue;\n\t\t\tkill(con->pid, SIGHUP);\n\t\t\tusleep(5000);\n\t\t\tkill(con->pid, SIGKILL);\n\t\t}\n\t}\n\tsignal(SIGCHLD,  SIG_DFL);\n\n\treturn 0;\n}\n"
  },
  {
    "path": "src/utmp.c",
    "content": "/*\n * utmp.c\tRoutines to read/write the utmp and wtmp files.\n *\t\tBasically just wrappers around the library routines.\n *\n * Version:\t@(#)utmp.c  2.77  09-Jun-1999  miquels@cistron.nl\n *\n * Copyright (C) 1999 Miquel van Smoorenburg.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by \n * the Free Software Foundation; either version 2 of the License, or \n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful, \n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *\n */\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/ioctl.h>\n#include <sys/utsname.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <errno.h>\n#include <stdio.h>\n#include <time.h>\n#include <fcntl.h>\n#include <string.h>\n#ifdef __FreeBSD__\n#include <utmpx.h>\n#else\n#include <utmp.h>\n#endif\n\n#include \"init.h\"\n#include \"initreq.h\"\n#include \"paths.h\"\n\n\n#if defined(__GLIBC__)\n#  if (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0) && defined(__powerpc__)\n#    define HAVE_UPDWTMP 0\n#  else\n#    define HAVE_UPDWTMP 1\n#  endif\n#else\n#  define HAVE_UPDWTMP 0\n#endif\n\n\n/*\n *\tLog an event in the wtmp file (reboot, runlevel)\n */\nvoid write_wtmp(\nchar *user,\t\t\t/* name of user */\nchar *id,\t\t\t/* inittab ID */\nint pid,\t\t\t/* PID of process */\nint type,\t\t\t/* TYPE of entry */\nchar *line)\t\t\t/* Which line is this */\n{\n\tint fd;\n\tstruct utmp utmp;\n\tstruct utsname uname_buf;\n\tstruct timeval tv;\n\t\n\t/*\n\t *\tCan't do much if WTMP_FILE is not present or not writable.\n\t */\n\tif (access(WTMP_FILE, W_OK) < 0)\n\t\treturn;\n\n\t/*\n\t *\tTry to open the wtmp file. Note that we even try\n\t *\tthis if we have updwtmp() so we can see if the\n\t *\twtmp file is accessible.\n\t */\n\tif ((fd = open(WTMP_FILE, O_WRONLY|O_APPEND)) < 0) return;\n\n#ifdef INIT_MAIN\n\t/*\n\t *\tNote if we are going to write a boot record.\n\t */\n\tif (type == BOOT_TIME) wrote_wtmp_reboot++;\n\n\t/*\n\t *\tSee if we need to write a reboot record. The reason that\n\t *\twe are being so paranoid is that when we first tried to\n\t *\twrite the reboot record, /var was possibly not mounted\n\t *\tyet. As soon as we can open WTMP we write a delayed boot record.\n\t */\n\tif (wrote_wtmp_reboot == 0 && type != BOOT_TIME)\n  \t\twrite_wtmp(\"reboot\", \"~~\", 0, BOOT_TIME, \"~\");\n\n\t/*\n\t *\tNote if we are going to write a runlevel record.\n\t */\n\tif (type == RUN_LVL) wrote_wtmp_rlevel++;\n\n\t/*\n\t *\tSee if we need to write a runlevel record. The reason that\n\t *\twe are being so paranoid is that when we first tried to\n\t *\twrite the reboot record, /var was possibly not mounted\n\t *\tyet. As soon as we can open WTMP we write a delayed runlevel record.\n\t */\n\tif (wrote_wtmp_rlevel == 0 && type != RUN_LVL) {\n\t\tint runlevel = thislevel;\n\t\tint oldlevel = prevlevel;\n\t\twrite_wtmp(\"runlevel\", \"~~\", runlevel + 256 * oldlevel, RUN_LVL, \"~\");\n\t}\n#endif\n\n\t/*\n\t *\tZero the fields and enter new fields.\n\t */\n\tmemset(&utmp, 0, sizeof(utmp));\n#if defined(__GLIBC__)\n\tgettimeofday(&tv, NULL);\n\tutmp.ut_tv.tv_sec = tv.tv_sec;\n\tutmp.ut_tv.tv_usec = tv.tv_usec;\n#else\n\ttime(&utmp.ut_time);\n#endif\n\tutmp.ut_pid  = pid;\n\tutmp.ut_type = type;\n\tstrncpy(utmp.ut_name, user, sizeof(utmp.ut_name));\n\tstrncpy(utmp.ut_id  , id  , sizeof(utmp.ut_id  ));\n\tstrncpy(utmp.ut_line, line, sizeof(utmp.ut_line));\n        \n        /* Put the OS version in place of the hostname */\n        if (uname(&uname_buf) == 0)\n\t\tstrncpy(utmp.ut_host, uname_buf.release, sizeof(utmp.ut_host));\n\n#if HAVE_UPDWTMP\n\tupdwtmp(WTMP_FILE, &utmp);\n#else\n\twrite(fd, (char *)&utmp, sizeof(utmp));\n#endif\n\tclose(fd);\n}\n\n/*\n *\tWrite an entry to the UTMP file. For DEAD_PROCESS, put\n *\tthe previous ut_line into oldline if oldline != NULL.\n */\nstatic void write_utmp(\nchar *user,\t\t\t/* name of user */\nchar *id,\t\t\t/* inittab ID */\nint pid,\t\t\t/* PID of process */\nint type,\t\t\t/* TYPE of entry */\nchar *line,\t\t\t/* LINE if used. */\nchar *oldline)\t\t\t/* Line of old utmp entry. */\n{\n\tstruct utmp utmp;\n\tstruct utmp tmp;\n\tstruct utmp *utmptr;\n\tstruct timeval tv;\n\n\t/*\n\t *\tCan't do much if UTMP_FILE is not present or not writable.\n\t */\n\tif (access(UTMP_FILE, W_OK) < 0)\n\t\treturn;\n\n#ifdef INIT_MAIN\n\t/*\n\t *\tNote if we are going to write a boot record.\n\t */\n\tif (type == BOOT_TIME) wrote_utmp_reboot++;\n\n\t/*\n\t *\tSee if we need to write a reboot record. The reason that\n\t *\twe are being so paranoid is that when we first tried to\n\t *\twrite the reboot record, /var was possibly not mounted\n\t *\tyet. As soon as we can open UTMP we write a delayed boot record.\n\t */\n\tif (wrote_utmp_reboot == 0 && type != BOOT_TIME)\n  \t\twrite_utmp(\"reboot\", \"~~\", 0, BOOT_TIME, \"~\", NULL);\n\n\t/*\n\t *\tNote if we are going to write a runlevel record.\n\t */\n\tif (type == RUN_LVL) wrote_utmp_rlevel++;\n\n\t/*\n\t *\tSee if we need to write a runlevel record. The reason that\n\t *\twe are being so paranoid is that when we first tried to\n\t *\twrite the reboot record, /var was possibly not mounted\n\t *\tyet. As soon as we can open UTMP we write a delayed runlevel record.\n\t */\n\tif (wrote_utmp_rlevel == 0 && type != RUN_LVL) {\n\t\tint runlevel = thislevel;\n\t\tint oldlevel = prevlevel;\n\t\twrite_utmp(\"runlevel\", \"~~\", runlevel + 256 * oldlevel, RUN_LVL, \"~\", NULL);\n\t}\n#endif\n\n\t/*\n\t *\tFill out an utmp struct.\n\t */\n\tmemset(&utmp, 0, sizeof(utmp));\n\tutmp.ut_type = type;\n\tutmp.ut_pid = pid;\n\tstrncpy(utmp.ut_id, id, sizeof(utmp.ut_id));\n#if defined(__GLIBC__)\n\tgettimeofday(&tv, NULL);\n\tutmp.ut_tv.tv_sec = tv.tv_sec;\n\tutmp.ut_tv.tv_usec = tv.tv_usec;\n#else\n\ttime(&utmp.ut_time);\n#endif\n\tstrncpy(utmp.ut_user, user, UT_NAMESIZE);\n\tif (line) strncpy(utmp.ut_line, line, UT_LINESIZE);\n\t\n\t/*\n\t *\tWe might need to find the existing entry first, to\n\t *\tfind the tty of the process (for wtmp accounting).\n\t */\n\tif (type == DEAD_PROCESS) {\n\t\t/*\n\t\t *\tFind existing entry for the tty line.\n\t\t */\n\t\tsetutent();\n\t\ttmp = utmp;\n\t\tif ((utmptr = getutid(&tmp)) != NULL) {\n\t\t\tstrncpy(utmp.ut_line, utmptr->ut_line, UT_LINESIZE);\n\t\t\tif (oldline)\n\t\t\t\tstrncpy(oldline, utmptr->ut_line, UT_LINESIZE);\n\t\t}\n\t}\n\n\t/*\n\t *\tUpdate existing utmp file.\n\t */\n\tsetutent();\n\tpututline(&utmp);\n\tendutent();\n}\n\n/*\n *\tWrite a record to both utmp and wtmp.\n */\nvoid write_utmp_wtmp(\nchar *user,\t\t\t/* name of user */\nchar *id,\t\t\t/* inittab ID */\nint pid,\t\t\t/* PID of process */\nint type,\t\t\t/* TYPE of entry */\nchar *line)\t\t\t/* LINE if used. */\n{\n\tchar\toldline[UT_LINESIZE];\n\n\t/*\n\t *\tFor backwards compatibility we just return\n\t *\tif user == NULL (means : clean up utmp file).\n\t */\n\tif (user == NULL)\n\t\treturn;\n\n\toldline[0] = 0;\n\twrite_utmp(user, id, pid, type, line, oldline);\n\twrite_wtmp(user, id, pid, type, line && line[0] ? line : oldline);\n}\n\n"
  },
  {
    "path": "src/utmpdump.c",
    "content": "/*\n * utmpdump\tSimple program to dump UTMP and WTMP files in\n *\t\traw format, so they can be examined.\n *\n * Author:\tMiquel van Smoorenburg, <miquels@cistron.nl>\n *              Danek Duvall <duvall@alumni.princeton.edu>\n *\n * Version:\t@(#)utmpdump  2.79  12-Sep-2000\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2000 Miquel van Smoorenburg.\n *\n *\t\tAdditional Copyright on this file 1998 Danek Duvall.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <utmp.h>\n#include <time.h>\n#include <ctype.h>\n#include <unistd.h>\n#include <netinet/in.h>\n#include <arpa/inet.h>\n#include \"oldutmp.h\"\n\nstruct utmp\noldtonew(struct oldutmp src)\n{\n        struct utmp dest;\n\n\tmemset(&dest, 0, sizeof dest);\n\tdest.ut_type = src.ut_type;\n\tdest.ut_pid  = src.ut_pid;\n\tdest.ut_time = src.ut_oldtime;\n\tdest.ut_addr = src.ut_oldaddr;\n\tstrncpy(dest.ut_id,   src.ut_id,   4);\n\tstrncpy(dest.ut_line, src.ut_line, OLD_LINESIZE);\n\tstrncpy(dest.ut_user, src.ut_user, OLD_NAMESIZE);\n\tstrncpy(dest.ut_host, src.ut_host, OLD_HOSTSIZE);\n\n        return dest;\n}\n\nstruct oldutmp\nnewtoold(struct utmp src)\n{\n        struct oldutmp dest;\n\n\tmemset(&dest, 0, sizeof dest);\n\tdest.ut_type    = src.ut_type;\n\tdest.ut_pid     = src.ut_pid;\n\tdest.ut_oldtime = src.ut_time;\n\tdest.ut_oldaddr = src.ut_addr;\n\tstrncpy(dest.ut_id,   src.ut_id,   4);\n\tstrncpy(dest.ut_line, src.ut_line, OLD_LINESIZE);\n\tstrncpy(dest.ut_user, src.ut_user, OLD_NAMESIZE);\n\tstrncpy(dest.ut_host, src.ut_host, OLD_HOSTSIZE);\n\n        return dest;\n}\n\nchar *\ntimetostr(const time_t time)\n{\n\tstatic char s[29];    /* [Sun Sep 01 00:00:00 1998 PST] */\n\n\tif (time != 0)\n\t\tstrftime(s, 29, \"%a %b %d %T %Y %Z\", localtime(&time));\n\telse\n\t\ts[0] = '\\0';\n\n\treturn s;\n}\n\ntime_t\nstrtotime(const char *s_time)\n{\n\tstruct tm tm;\n\t\n\tmemset(&tm, '\\0', sizeof(struct tm));\n\n\tif (s_time[0] == ' ' || s_time[0] == '\\0')\n\t\treturn (time_t)0;\n\n\tstrptime(s_time, \"%a %b %d %T %Y\", &tm);\n\n\t/* Cheesy way of checking for DST */\n\tif (s_time[26] == 'D')\n\t\ttm.tm_isdst = 1;\n\n\treturn mktime(&tm);\n}\n\n#define cleanse(x) xcleanse(x, sizeof(x))\nvoid\nxcleanse(char *s, int len)\n{\n\tfor ( ; *s && len-- > 0; s++)\n\t\tif (!isprint(*s) || *s == '[' || *s == ']')\n\t\t\t*s = '?';\n}\n\nvoid\nunspace(char *s, int len)\n{\n\twhile (*s && *s != ' ' && len--)\n\t\t++s;\n\n\tif (len > 0)\n\t\t*s = '\\0';\n}\n\nvoid\nprint_utline(struct utmp ut)\n{\n\tchar addr_buf[INET6_ADDRSTRLEN+1];\n\tconst char *addr_string, *time_string;\n\tvoid *in_addr = &ut.ut_addr_v6;\n\tsize_t addr_length = INET6_ADDRSTRLEN;\n\tint addr_family = AF_INET6;\n\n\tif (!ut.ut_addr_v6[1] && !ut.ut_addr_v6[2] && !ut.ut_addr_v6[3]) {\n\t\taddr_family = AF_INET;\n\t\taddr_length = INET_ADDRSTRLEN;\n\t\tin_addr = &ut.ut_addr;\n\t}\n\tif ((addr_string = inet_ntop(addr_family, in_addr, addr_buf, addr_length)) == 0) {\n\t\taddr_buf[0] = '\\0';\n\t\taddr_string = &addr_buf[0];\n\t}\n\ttime_string = timetostr(ut.ut_time);\n\tcleanse(ut.ut_id);\n\tcleanse(ut.ut_user);\n\tcleanse(ut.ut_line);\n\tcleanse(ut.ut_host);\n\n        /*            pid    id       user     line     host     addr       time */\n\tprintf(\"[%d] [%05d] [%-4.4s] [%-*.*s] [%-*.*s] [%-*.*s] [%-15.15s] [%-28.28s]\\n\",\n\t       ut.ut_type, ut.ut_pid, ut.ut_id, 8, UT_NAMESIZE, ut.ut_user,\n\t       12, UT_LINESIZE, ut.ut_line, 20, UT_HOSTSIZE, ut.ut_host,\n               addr_string, time_string);\n}\n\nvoid\ndump(FILE *fp, int forever, int oldfmt)\n{\n\tstruct utmp ut;\n\tstruct oldutmp uto;\n\n\tif (forever)\n\t\tfseek(fp, -10 * (oldfmt ? sizeof uto : sizeof ut), SEEK_END);\n\n\tdo {\n\t\tif (oldfmt)\n\t\t\twhile (fread(&uto, sizeof uto, 1, fp) == 1)\n\t\t\t\tprint_utline(oldtonew(uto));\n\t\telse\n\t\t\twhile (fread(&ut, sizeof ut, 1, fp) == 1)\n\t\t\t\tprint_utline(ut);\n\t\tif (forever) sleep(1);\n\t} while (forever);\n}\n\n/* This function won't work properly if there's a ']' or a ' ' in the real\n * token.  Thankfully, this should never happen.  */\nint\ngettok(char *line, char *dest, int size, int eatspace)\n{\n\tint bpos, epos, eaten;\n        char *t;\n\n\tbpos = strchr(line, '[') - line;\n\tif (bpos < 0) {\n\t\tfprintf(stderr, \"Extraneous newline in file.  Exiting.\");\n                exit(1);\n        }\n\tline += 1 + bpos;\n\n\tepos = strchr(line, ']') - line;\n\tif (epos < 0) {\n\t\tfprintf(stderr, \"Extraneous newline in file.  Exiting.\");\n                exit(1);\n        }\n\tline[epos] = '\\0';\n\n\teaten = bpos + epos + 1;\n\n\tif (eatspace)\n                if ((t = strchr(line, ' ')))\n                    *t = 0;\n\n        strncpy(dest, line, size);\n\n\treturn eaten + 1;\n}\n\nvoid\n# ifdef __GNUC__\nundump(FILE *fp, int forever __attribute__((unused)), int oldfmt)\n#else\nundump(FILE *fp, int forever, int oldfmt)\n#endif\n{\n\tstruct utmp ut;\n\tstruct oldutmp uto;\n\tchar s_addr[16], s_time[29], *linestart;\n\n\tlinestart = malloc(1024 * sizeof *linestart);\n\ts_addr[15] = 0;\n\ts_time[28] = 0;\n\n\twhile(fgets(linestart, 1023, fp))\n\t{\n\t\tchar *line = linestart;\n                memset(&ut, '\\0', sizeof(ut));\n                sscanf(line, \"[%hd] [%d] [%4c] \", &ut.ut_type, &ut.ut_pid, ut.ut_id);\n\n\t\tline += 19;\n                line += gettok(line, ut.ut_user, sizeof(ut.ut_user), 1);\n                line += gettok(line, ut.ut_line, sizeof(ut.ut_line), 1);\n                line += gettok(line, ut.ut_host, sizeof(ut.ut_host), 1);\n\t\tline += gettok(line, s_addr, sizeof(s_addr)-1, 1);\n\t\tline += gettok(line, s_time, sizeof(s_time)-1, 0);\n\t\t(void)line; /* Quiet down static source analyzers */\n\n                ut.ut_addr = inet_addr(s_addr);\n                ut.ut_time = strtotime(s_time);\n\n                if (oldfmt) {\n                        uto = newtoold(ut);\n                        fwrite(&uto, sizeof(uto), 1, stdout);\n                } else\n                        fwrite(&ut, sizeof(ut), 1, stdout);\n\n\t}\n\n\tfree(linestart);\n}\n\nvoid\nusage(int result)\n{\n\tprintf(\"Usage: utmpdump [ -froh ] [ filename ]\\n\");\n\texit(result);\n}\n\nint main(int argc, char **argv)\n{\n\tint c;\n\tFILE *fp;\n\tint reverse = 0, forever = 0, oldfmt = 0;\n\n\twhile ((c = getopt(argc, argv, \"froh\")) != EOF) {\n\t\tswitch (c) {\n\t\tcase 'r':\n\t\t\treverse = 1;\n\t\t\tbreak;\n\n\t\tcase 'f':\n\t\t\tforever = 1;\n\t\t\tbreak;\n\n\t\tcase 'o':\n\t\t\toldfmt = 1;\n\t\t\tbreak;\n\n\t\tcase 'h':\n\t\t\tusage(0);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tusage(1);\n\t\t}\n\t}\n\n\tif (optind < argc) {\n\t\tfprintf(stderr, \"Utmp %sdump of %s\\n\", reverse ? \"un\" : \"\", argv[optind]);\n\t\tif ((fp = fopen(argv[optind], \"r\")) == NULL) {\n\t\t\tperror(\"Unable to open file\");\n\t\t\texit(1);\n\t\t}\n\t}\n\telse {\n\t\tfprintf(stderr, \"Utmp %sdump of stdin\\n\", reverse ? \"un\" : \"\");\n\t\tfp = stdin;\n\t}\n\n\tif (reverse)\n\t\tundump(fp, forever, oldfmt);\n\telse\n\t\tdump(fp, forever, oldfmt);\n\n\tfclose(fp);\n\n\treturn 0;\n}\n"
  },
  {
    "path": "src/wall.c",
    "content": "/*\n * wall.c\tWrite to all users logged in.\n *\n * Usage:\twall [text]\n *\n * Version:\t@(#)wall  2.79  12-Sep-2000  miquels@cistron.nl\n *\n *\t\tThis file is part of the sysvinit suite,\n *\t\tCopyright (C) 1991-2000 Miquel van Smoorenburg.\n *\n *\t\tThis program is free software; you can redistribute it and/or modify\n *\t\tit under the terms of the GNU General Public License as published by\n *\t\tthe Free Software Foundation; either version 2 of the License, or\n *\t\t(at your option) any later version.\n *\n *\t\tThis program is distributed in the hope that it will be useful,\n *\t\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\n *\t\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *\t\tGNU General Public License for more details.\n *\n *\t\tYou should have received a copy of the GNU General Public License\n *\t\talong with this program; if not, write to the Free Software\n *\t\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#include <stdio.h>\n#include <string.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <pwd.h>\n#include <syslog.h>\n#include <sys/types.h>\n#include \"init.h\"\n\n\n#define MAXLEN 4096\n#define LINE_SIZE 80\n#define MAXLINES 20\n\nint main(int argc, char **argv)\n{\n  char buf[MAXLEN];\n  char line[LINE_SIZE + 3];   /* leave room for \\r\\n\\0 */\n  int i, f, ch;\n  int len = 0;\n  int remote = 0;\n  char *p;\n  char *whoami;\n  struct passwd *pwd;\n\n  buf[0] = 0;\n  if ((pwd = getpwuid(getuid())) == NULL) {\n\tif (getuid() == 0)\n\t\twhoami = \"root\";\n\telse {\n\t\tfprintf(stderr, \"You don't exist. Go away.\\n\");\n\t\texit(1);\n\t}\n  } else\n\twhoami = pwd->pw_name;\n\n  while((ch = getopt(argc, argv, \"n\")) != EOF)\n\tswitch(ch) {\n\t\tcase 'n':\n\t\t\t/*\n\t\t\t *\tUndocumented option for suppressing\n\t\t\t *\tbanner from rpc.rwalld. Only works if\n\t\t\t *\twe are root or if we're NOT setgid.\n\t\t\t */\n\t\t\tif (geteuid() != 0 && getgid() != getegid()) {\n\t\t\t\tfprintf(stderr, \"wall -n: not privileged\\n\");\n\t\t\t\texit(1);\n\t\t\t}\n\t\t\tremote = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tfprintf(stderr, \"usage: wall [message]\\n\");\n\t\t\treturn 1;\n\t\t\tbreak;\n\t}\n\n  if ((argc - optind) > 0) {\n\tfor(f = optind; f < argc; f++) {\n\t\tlen += strlen(argv[f]) + 1;\n\t\tif (len >= MAXLEN-4) break;\n\t\tstrcat(buf, argv[f]);\n\t\tif (f < argc-1) strcat(buf, \" \");\n\t}\n\tstrcat(buf, \"\\r\\n\");\n  } else {\n\twhile(fgets(line, 80, stdin)) {\n\t\t/*\n\t\t *\tMake sure that line ends in \\r\\n\n\t\t */\n\t\tfor(p = line; *p && *p != '\\r' && *p != '\\n'; p++)\n\t\t\t;\n\t\tstrcpy(p, \"\\r\\n\");\n\t\tlen += strlen(line);\n\t\tif (len >= MAXLEN) break;\n\t\tstrcat(buf, line);\n\t}\n  }\n\n  i = 0;\n  for (p = buf; *p; p++) {\n\tif (*p == '\\n' && ++i >= MAXLINES) {\n\t\t*++p = 0;\n\t\tbreak;\n\t}\n  }\n\n  openlog(\"wall\", LOG_PID, LOG_USER);\n  syslog(LOG_INFO, \"wall: user %s broadcasted %d lines (%zu chars)\",\n\twhoami, i, strlen(buf));\n  closelog();\n\n  unsetenv(\"TZ\");\n  wall(buf, remote);\n\n  /*NOTREACHED*/\n  return 0;\n}\n\n"
  }
]