How does systemctl suspend work?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












2














From the systemctl manpage:




suspend



Suspend the system. This will trigger activation of the special target unit suspend.target. This command is asynchronous, and will
return after the suspend operation is successfully enqueued. It will
not wait for the suspend/resume cycle to complete.




On my system the suspend.target looks like this:



[Unit]
Description=Suspend
Documentation=man:systemd.special(7)
DefaultDependencies=no
Requires=systemd-suspend.service
After=systemd-suspend.service
StopWhenUnneeded=yes


If I look at the man:systemd.special(7) listed there I get find this:




suspend.target
A special target unit for suspending the system. This pulls in sleep.target.




If I dig more into systemd-suspend.service I get:




systemd-suspend.service is a system service that is pulled in by
suspend.target and is responsible for the actual system suspend.



...



Internally, this service will echo a string like "mem" into
/sys/power/state, to trigger the actual system suspend. What exactly
is written where can be configured in the "[Sleep]" section of
/etc/systemd/sleep.conf or a sleep.conf.d file.




The documentation on sleep.conf tells me:




The default configuration is defined during compilation, so a
configuration file is only needed when it is necessary to deviate from
those defaults.




There is no sleep.conf on my system so it must be using the compiled defaults. I can't figure out what those are.



What are the exact commands being sent to /sys/power/state and friends by systemctl suspend by default?










share|improve this question




























    2














    From the systemctl manpage:




    suspend



    Suspend the system. This will trigger activation of the special target unit suspend.target. This command is asynchronous, and will
    return after the suspend operation is successfully enqueued. It will
    not wait for the suspend/resume cycle to complete.




    On my system the suspend.target looks like this:



    [Unit]
    Description=Suspend
    Documentation=man:systemd.special(7)
    DefaultDependencies=no
    Requires=systemd-suspend.service
    After=systemd-suspend.service
    StopWhenUnneeded=yes


    If I look at the man:systemd.special(7) listed there I get find this:




    suspend.target
    A special target unit for suspending the system. This pulls in sleep.target.




    If I dig more into systemd-suspend.service I get:




    systemd-suspend.service is a system service that is pulled in by
    suspend.target and is responsible for the actual system suspend.



    ...



    Internally, this service will echo a string like "mem" into
    /sys/power/state, to trigger the actual system suspend. What exactly
    is written where can be configured in the "[Sleep]" section of
    /etc/systemd/sleep.conf or a sleep.conf.d file.




    The documentation on sleep.conf tells me:




    The default configuration is defined during compilation, so a
    configuration file is only needed when it is necessary to deviate from
    those defaults.




    There is no sleep.conf on my system so it must be using the compiled defaults. I can't figure out what those are.



    What are the exact commands being sent to /sys/power/state and friends by systemctl suspend by default?










    share|improve this question


























      2












      2








      2







      From the systemctl manpage:




      suspend



      Suspend the system. This will trigger activation of the special target unit suspend.target. This command is asynchronous, and will
      return after the suspend operation is successfully enqueued. It will
      not wait for the suspend/resume cycle to complete.




      On my system the suspend.target looks like this:



      [Unit]
      Description=Suspend
      Documentation=man:systemd.special(7)
      DefaultDependencies=no
      Requires=systemd-suspend.service
      After=systemd-suspend.service
      StopWhenUnneeded=yes


      If I look at the man:systemd.special(7) listed there I get find this:




      suspend.target
      A special target unit for suspending the system. This pulls in sleep.target.




      If I dig more into systemd-suspend.service I get:




      systemd-suspend.service is a system service that is pulled in by
      suspend.target and is responsible for the actual system suspend.



      ...



      Internally, this service will echo a string like "mem" into
      /sys/power/state, to trigger the actual system suspend. What exactly
      is written where can be configured in the "[Sleep]" section of
      /etc/systemd/sleep.conf or a sleep.conf.d file.




      The documentation on sleep.conf tells me:




      The default configuration is defined during compilation, so a
      configuration file is only needed when it is necessary to deviate from
      those defaults.




      There is no sleep.conf on my system so it must be using the compiled defaults. I can't figure out what those are.



      What are the exact commands being sent to /sys/power/state and friends by systemctl suspend by default?










      share|improve this question















      From the systemctl manpage:




      suspend



      Suspend the system. This will trigger activation of the special target unit suspend.target. This command is asynchronous, and will
      return after the suspend operation is successfully enqueued. It will
      not wait for the suspend/resume cycle to complete.




      On my system the suspend.target looks like this:



      [Unit]
      Description=Suspend
      Documentation=man:systemd.special(7)
      DefaultDependencies=no
      Requires=systemd-suspend.service
      After=systemd-suspend.service
      StopWhenUnneeded=yes


      If I look at the man:systemd.special(7) listed there I get find this:




      suspend.target
      A special target unit for suspending the system. This pulls in sleep.target.




      If I dig more into systemd-suspend.service I get:




      systemd-suspend.service is a system service that is pulled in by
      suspend.target and is responsible for the actual system suspend.



      ...



      Internally, this service will echo a string like "mem" into
      /sys/power/state, to trigger the actual system suspend. What exactly
      is written where can be configured in the "[Sleep]" section of
      /etc/systemd/sleep.conf or a sleep.conf.d file.




      The documentation on sleep.conf tells me:




      The default configuration is defined during compilation, so a
      configuration file is only needed when it is necessary to deviate from
      those defaults.




      There is no sleep.conf on my system so it must be using the compiled defaults. I can't figure out what those are.



      What are the exact commands being sent to /sys/power/state and friends by systemctl suspend by default?







      systemd suspend






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 24 '18 at 7:08

























      asked Dec 24 '18 at 5:54









      Gregory Arenius

      13017




      13017




















          1 Answer
          1






          active

          oldest

          votes


















          3














          The defaults are "mem", "standby", "freeze" (the last two and the ability to configure sleep modes have been added in 2013 so they might not be available on older setups).

          The manual page you quoted describes how it's done, namely systemd-suspend.service writes




          ... a string like "mem" into /sys/power/state, to
          trigger the actual system suspend.




          For more information about the sleep states and the sysfs interface that can be used by user space to control those states consult the official docs: System Sleep States






          share|improve this answer




















          • Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
            – Gregory Arenius
            Dec 24 '18 at 17:42










          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490719%2fhow-does-systemctl-suspend-work%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          The defaults are "mem", "standby", "freeze" (the last two and the ability to configure sleep modes have been added in 2013 so they might not be available on older setups).

          The manual page you quoted describes how it's done, namely systemd-suspend.service writes




          ... a string like "mem" into /sys/power/state, to
          trigger the actual system suspend.




          For more information about the sleep states and the sysfs interface that can be used by user space to control those states consult the official docs: System Sleep States






          share|improve this answer




















          • Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
            – Gregory Arenius
            Dec 24 '18 at 17:42















          3














          The defaults are "mem", "standby", "freeze" (the last two and the ability to configure sleep modes have been added in 2013 so they might not be available on older setups).

          The manual page you quoted describes how it's done, namely systemd-suspend.service writes




          ... a string like "mem" into /sys/power/state, to
          trigger the actual system suspend.




          For more information about the sleep states and the sysfs interface that can be used by user space to control those states consult the official docs: System Sleep States






          share|improve this answer




















          • Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
            – Gregory Arenius
            Dec 24 '18 at 17:42













          3












          3








          3






          The defaults are "mem", "standby", "freeze" (the last two and the ability to configure sleep modes have been added in 2013 so they might not be available on older setups).

          The manual page you quoted describes how it's done, namely systemd-suspend.service writes




          ... a string like "mem" into /sys/power/state, to
          trigger the actual system suspend.




          For more information about the sleep states and the sysfs interface that can be used by user space to control those states consult the official docs: System Sleep States






          share|improve this answer












          The defaults are "mem", "standby", "freeze" (the last two and the ability to configure sleep modes have been added in 2013 so they might not be available on older setups).

          The manual page you quoted describes how it's done, namely systemd-suspend.service writes




          ... a string like "mem" into /sys/power/state, to
          trigger the actual system suspend.




          For more information about the sleep states and the sysfs interface that can be used by user space to control those states consult the official docs: System Sleep States







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 24 '18 at 11:24









          don_crissti

          49.8k15132161




          49.8k15132161











          • Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
            – Gregory Arenius
            Dec 24 '18 at 17:42
















          • Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
            – Gregory Arenius
            Dec 24 '18 at 17:42















          Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
          – Gregory Arenius
          Dec 24 '18 at 17:42




          Thanks! I was looking in sleep.c not sleep-config.c and not finding what I needed. I always appreciate an answer that points to the actual source code!
          – Gregory Arenius
          Dec 24 '18 at 17:42

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490719%2fhow-does-systemctl-suspend-work%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown






          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?