diff --git a/Makefile.am b/Makefile.am index e432dcbbe4..b15cb123be 100644 --- a/Makefile.am +++ b/Makefile.am @@ -162,6 +162,7 @@ dist_systemunit_DATA = \ units/basic.target \ units/getty.target \ units/halt.target \ + units/kexec.target \ units/local-fs.target \ units/network.target \ units/nss-lookup.target \ @@ -229,10 +230,12 @@ nodist_systemunit_DATA = \ units/systemd-readahead-done.service \ units/systemd-tmpfiles.service \ units/systemd-user-sessions.service \ - units/syslog.target + units/syslog.target \ + units/kexec.service dist_sessionunit_DATA = \ - units/session/default.target + units/session/default.target \ + units/session/exit.target nodist_sessionunit_DATA = \ units/session/remote-fs.target \ @@ -262,6 +265,7 @@ EXTRA_DIST = \ units/systemd-tmpfiles.service.in \ units/systemd-user-sessions.service.in \ units/syslog.target.in \ + units/kexec.service.in \ units/session/exit.service.in \ systemd.pc.in diff --git a/units/.gitignore b/units/.gitignore index 00a40d4e9c..83fc32cfd9 100644 --- a/units/.gitignore +++ b/units/.gitignore @@ -1,3 +1,4 @@ +kexec.service systemd-user-sessions.service systemd-readahead-done.service systemd-tmpfiles.service diff --git a/units/kexec.service.in b/units/kexec.service.in new file mode 100644 index 0000000000..70ad227ff9 --- /dev/null +++ b/units/kexec.service.in @@ -0,0 +1,16 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +[Unit] +Description=Reboot via kexec +DefaultDependencies=no +Requires=shutdown.target umount.target +After=shutdown.target umount.target + +[Service] +Type=oneshot +ExecStart=@SYSTEMCTL@ --force kexec diff --git a/units/kexec.target b/units/kexec.target new file mode 100644 index 0000000000..b77e6a43f1 --- /dev/null +++ b/units/kexec.target @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# See systemd.special(7) for details + +[Unit] +Description=Reboot via kexec +DefaultDependencies=no +Requires=kexec.service +After=kexec.service +AllowIsolate=yes + +[Install] +Alias=ctrl-alt-del.target diff --git a/units/session/exit.service.in b/units/session/exit.service.in index d098d0da50..024fbe172d 100644 --- a/units/session/exit.service.in +++ b/units/session/exit.service.in @@ -1,9 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# See systemd.special(7) for details + [Unit] -Description=Exit +Description=Exit the Session DefaultDependencies=no Requires=shutdown.target After=shutdown.target [Service] Type=oneshot -ExecStart=@SYSTEMCTL@ --session daemon-exit +ExecStart=@SYSTEMCTL@ --session --force exit diff --git a/units/session/exit.target b/units/session/exit.target new file mode 100644 index 0000000000..f34844c0d3 --- /dev/null +++ b/units/session/exit.target @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# See systemd.special(7) for details + +[Unit] +Description=Exit the Session +DefaultDependencies=no +Requires=exit.service +After=exit.service +AllowIsolate=yes + +[Install] +Alias=ctrl-alt-del.target