 5f8d14546b
			
		
	
	
		5f8d14546b
		
	
	
	
	
		
			
			* manual: Mark commands that require root Mark every command that requires to be run as root by prefixing them with '#' instead of '$'. * manual: Add note about commands that require root
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <chapter xmlns="http://docbook.org/ns/docbook"
 | |
|          xmlns:xlink="http://www.w3.org/1999/xlink"
 | |
|          xmlns:xi="http://www.w3.org/2001/XInclude"
 | |
|          version="5.0"
 | |
|          xml:id="sec-systemctl">
 | |
| 
 | |
| <title>Service Management</title>
 | |
| 
 | |
| <para>In NixOS, all system services are started and monitored using
 | |
| the systemd program.  Systemd is the “init” process of the system
 | |
| (i.e. PID 1), the parent of all other processes.  It manages a set of
 | |
| so-called “units”, which can be things like system services
 | |
| (programs), but also mount points, swap files, devices, targets
 | |
| (groups of units) and more.  Units can have complex dependencies; for
 | |
| instance, one unit can require that another unit must be successfully
 | |
| started before the first unit can be started.  When the system boots,
 | |
| it starts a unit named <literal>default.target</literal>; the
 | |
| dependencies of this unit cause all system services to be started,
 | |
| file systems to be mounted, swap files to be activated, and so
 | |
| on.</para>
 | |
| 
 | |
| <para>The command <command>systemctl</command> is the main way to
 | |
| interact with <command>systemd</command>.  Without any arguments, it
 | |
| shows the status of active units:
 | |
| 
 | |
| <screen>
 | |
| $ systemctl
 | |
| -.mount          loaded active mounted   /
 | |
| swapfile.swap    loaded active active    /swapfile
 | |
| sshd.service     loaded active running   SSH Daemon
 | |
| graphical.target loaded active active    Graphical Interface
 | |
| <replaceable>...</replaceable>
 | |
| </screen>
 | |
| 
 | |
| </para>
 | |
| 
 | |
| <para>You can ask for detailed status information about a unit, for
 | |
| instance, the PostgreSQL database service:
 | |
| 
 | |
| <screen>
 | |
| $ systemctl status postgresql.service
 | |
| postgresql.service - PostgreSQL Server
 | |
|           Loaded: loaded (/nix/store/pn3q73mvh75gsrl8w7fdlfk3fq5qm5mw-unit/postgresql.service)
 | |
|           Active: active (running) since Mon, 2013-01-07 15:55:57 CET; 9h ago
 | |
|         Main PID: 2390 (postgres)
 | |
|           CGroup: name=systemd:/system/postgresql.service
 | |
|                   ├─2390 postgres
 | |
|                   ├─2418 postgres: writer process
 | |
|                   ├─2419 postgres: wal writer process
 | |
|                   ├─2420 postgres: autovacuum launcher process
 | |
|                   ├─2421 postgres: stats collector process
 | |
|                   └─2498 postgres: zabbix zabbix [local] idle
 | |
| 
 | |
| Jan 07 15:55:55 hagbard postgres[2394]: [1-1] LOG:  database system was shut down at 2013-01-07 15:55:05 CET
 | |
| Jan 07 15:55:57 hagbard postgres[2390]: [1-1] LOG:  database system is ready to accept connections
 | |
| Jan 07 15:55:57 hagbard postgres[2420]: [1-1] LOG:  autovacuum launcher started
 | |
| Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server.
 | |
| </screen>
 | |
| 
 | |
| Note that this shows the status of the unit (active and running), all
 | |
| the processes belonging to the service, as well as the most recent log
 | |
| messages from the service.
 | |
| 
 | |
| </para>
 | |
| 
 | |
| <para>Units can be stopped, started or restarted:
 | |
| 
 | |
| <screen>
 | |
| # systemctl stop postgresql.service
 | |
| # systemctl start postgresql.service
 | |
| # systemctl restart postgresql.service
 | |
| </screen>
 | |
| 
 | |
| These operations are synchronous: they wait until the service has
 | |
| finished starting or stopping (or has failed).  Starting a unit will
 | |
| cause the dependencies of that unit to be started as well (if
 | |
| necessary).</para>
 | |
| 
 | |
| <!-- - cgroups: each service and user session is a cgroup
 | |
| 
 | |
| - cgroup resource management -->
 | |
| 
 | |
| </chapter>
 |