From Fedora Project Wiki
(Wrong location of for anongit clone.)
 
(53 intermediate revisions by 2 users not shown)
Line 2: Line 2:
'''Systemd''' is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.
'''Systemd''' is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.


== New Kernel Command Line Parameters ==
== Systemd man pages ==


Read the # TODO Add link to upstream manpages or systemd option page.
=== Development man pages ===
Here's a list man pages related to the development of Systemd itself.
 
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Daemon daemon],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Pam_systemd pam systemd],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Sd-daemon sd-daemon],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Sd_booted sd_booted],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Sd_is_fifo sd_is_fifo],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Sd_listen_fds sd_listen_fds],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Sd_notify sd_notify],
 
 
=== End user man pages ===
Here's a list of man pages for various end user and administrative commands.
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Halt halt],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Runlevel runlevel],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Shutdown shutdown],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemadm systemadm],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemctl systemctl],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd-cgls systemd-cgls],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd-install systemd-install],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd-notify systemd-notify],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.automount systemd.automount],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.conf systemd.conf],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.device systemd.device],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.exec systemd.exec],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd systemd],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.mount systemd.mount],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.path systemd.path],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.service systemd.service],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.snapshot systemd.snapshot],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.socket systemd.socket],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.special systemd.special],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.swap systemd.swap],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.target systemd.target],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.timer systemd.timer],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.unit systemd.unit],
[https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/telinit telinit]


== Quick Debugging Tips ==
== Quick Debugging Tips ==


* add "systemd.log_target=kmsg" to the kernel command line to let systemd buffer  
* Add systemd.log_level=debug to the kernel command line to log systemd with debug output enabled
* to be written to the kernel log buffer to kernel buffer
* Add "systemd.log_target=kmsg" to the kernel command line to let systemd buffer to be written to the kernel log buffer
* Run dmesg from the command line to inspect systemd output  
* Run dmesg from the command line to inspect systemd output  
* Redirect dmesg ouput to a file for later inspection or to use as an attachment to a bug report
* Redirect dmesg ouput to a file for later inspection or to use as an attachment to a bug report
* run /bin/systemd --test --running-as=init from command line to test run init as systemd.
* Run /bin/systemd --test --system from command line to test run init as systemd.


[[How_to_debug_Systemd_problems|Read More... ]]
[[How_to_debug_Systemd_problems|Read More... ]]
Line 27: Line 65:
*[http://lists.freedesktop.org/mailman/listinfo/systemd-devel Subscribe] to the Systemd Development mailing list  
*[http://lists.freedesktop.org/mailman/listinfo/systemd-devel Subscribe] to the Systemd Development mailing list  


Please read [[Communicate/MailingListGuidelines|the mailing list guidelines]] before communicating on the list. See also [[How to use IRC]] if the IRC links don't work, or if you need more information.
Please read [[Communicate/MailingListGuidelines|the mailing list guidelines]] before communicating on the list.
 
See also [[How to use IRC]] if the IRC links don't work, or if you need more information.


== Getting started ==
== Getting started ==
Line 47: Line 87:
After the git source code management tool has been installed, then you use anonymous git access to the Systemd repository.
After the git source code management tool has been installed, then you use anonymous git access to the Systemd repository.
<pre>
<pre>
git clone git://anongit.freedesktop.org/systemd
git clone git://anongit.freedesktop.org/systemd/systemd
</pre>
</pre>
To keep your code updated with the latest System Development.
To keep your code updated with the latest System Development.
Line 60: Line 100:


If you would just like to browse the Systemd git repository via the web, then you can use [http://cgit.freedesktop.org/systemd/ Systemd gitweb].
If you would just like to browse the Systemd git repository via the web, then you can use [http://cgit.freedesktop.org/systemd/ Systemd gitweb].
== Useful commands ==
=== Listing running services ===
# TODO add description
<pre>
$ systemctl
</pre>
# TODO Sample output
=== Show runtime status ===
# TODO add description
<pre>
$ systemctl status $foo.service
</pre>
# TODO sample output
=== Tree list control groups ===
#TODO add description
<pre>
$ tree -d /cgroup/systemd/
</pre>
# TODO sample output
=== PS with cgroups ===
# TODO add description
<pre>
$ ps xawf -eo pid,user,cgroup,args
</pre>
# TODO sample output
# TODO write some jibber jabber about creating a handy alias for the above command named psc if it does not get added to default profiles before GA
<pre>
alias psc='ps xawf -eo pid,user,cgroup,args'
</pre>


== Reporting Problems ==
== Reporting Problems ==

Latest revision as of 04:59, 7 November 2012

Systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.

Systemd man pages

Development man pages

Here's a list man pages related to the development of Systemd itself.

daemon, pam systemd, sd-daemon, sd_booted, sd_is_fifo, sd_listen_fds, sd_notify,


End user man pages

Here's a list of man pages for various end user and administrative commands.

halt, runlevel, shutdown, systemadm, systemctl, systemd-cgls, systemd-install, systemd-notify, systemd.automount, systemd.conf, systemd.device, systemd.exec, systemd, systemd.mount, systemd.path, systemd.service, systemd.snapshot, systemd.socket, systemd.special, systemd.swap, systemd.target, systemd.timer, systemd.unit, telinit

Quick Debugging Tips

  • Add systemd.log_level=debug to the kernel command line to log systemd with debug output enabled
  • Add "systemd.log_target=kmsg" to the kernel command line to let systemd buffer to be written to the kernel log buffer
  • Run dmesg from the command line to inspect systemd output
  • Redirect dmesg ouput to a file for later inspection or to use as an attachment to a bug report
  • Run /bin/systemd --test --system from command line to test run init as systemd.

Read More...

Technical details

  1. TODO Gather this stuff

Communicate

Please read the mailing list guidelines before communicating on the list.

See also How to use IRC if the IRC links don't work, or if you need more information.

Getting started

To install on Fedora 14 and onwards run yum install systemd.

Add selinux=0 init=/bin/systemd either to /etc/grub.conf or pass it on the kernel command line at bootup.

Getting the Source

The primary methods of distributing the Systemd source are source RPMs in the Fedora development tree and git.

To access the current source code in in non-rpm format, you'll need to install git.

yum -y install git

Note that several related packages will be installed as well.

After the git source code management tool has been installed, then you use anonymous git access to the Systemd repository.

git clone git://anongit.freedesktop.org/systemd/systemd

To keep your code updated with the latest System Development.

cd $systemd_directory && git pull

If you have committer access to Systemd, then you will want to use the git+ssh access URL.

git clone git+ssh://git.freedesktop.org/git/systemd

Once you've committed changes locally, you can push them with git push.

If you would just like to browse the Systemd git repository via the web, then you can use Systemd gitweb.

Useful commands

Listing running services

  1. TODO add description
$ systemctl
  1. TODO Sample output

Show runtime status

  1. TODO add description
$ systemctl status $foo.service
  1. TODO sample output

Tree list control groups

  1. TODO add description
$ tree -d /cgroup/systemd/ 
  1. TODO sample output

PS with cgroups

  1. TODO add description
$ ps xawf -eo pid,user,cgroup,args
  1. TODO sample output
  2. TODO write some jibber jabber about creating a handy alias for the above command named psc if it does not get added to default profiles before GA
alias psc='ps xawf -eo pid,user,cgroup,args'

Reporting Problems

Before filing a bug, please read up on debugging, which will tell you how to fill out useful bug reports that will help us quickly solve your problem. Also take a look at Systemd bugs or try searching Bugzillafor other reports about your problem, as some bugs are often filed by several people.

Systemd Team

In alphabetical order, the following people are the Systemd team and are responsible for the majority of commits.

  • Christian Ruppert
  • Dave Reisner
  • Fabian Henze
  • Kay Sievers
  • Lennart Poettering
  • Maarten Lankhorst
  • Malcolm Studd
  • Marc Antoine Perennou
  • Michael Tremer
  • Pavol Rusnak
  • Robert Gerus
  • Tollef Fog Heen
  • Tom Gundersen