How do I detect when the system suspends?
I need to be able to log the times that an Ubuntu 10.04 Desktop system is suspended and resumed.
I can detect when the system is resumed via a DBus signal (org.freedesktop.UPower.Resuming()) but the corresponding "org.freedesktop.UPower.Sleeping()" signal is never fired. Ideally, I'd like to use DBus, but given the lack of success I'm having, I'd be happy with any solution providing it can be called from the command line.
I've discovered one way to do it:
tail -f /var/log/pm-suspend.log | grep "performing suspend"
This simply listens on one of the pm logs for the suspend logging. Although this works, it's probably rather brittle. I've found relying on log parsing to be rather problematic in the past due to changes in the log statements.
Ideally I'd like a more robust mechanism. The service that invokes this will be ran as root.
suspend suspend-resume
add a comment |
I need to be able to log the times that an Ubuntu 10.04 Desktop system is suspended and resumed.
I can detect when the system is resumed via a DBus signal (org.freedesktop.UPower.Resuming()) but the corresponding "org.freedesktop.UPower.Sleeping()" signal is never fired. Ideally, I'd like to use DBus, but given the lack of success I'm having, I'd be happy with any solution providing it can be called from the command line.
I've discovered one way to do it:
tail -f /var/log/pm-suspend.log | grep "performing suspend"
This simply listens on one of the pm logs for the suspend logging. Although this works, it's probably rather brittle. I've found relying on log parsing to be rather problematic in the past due to changes in the log statements.
Ideally I'd like a more robust mechanism. The service that invokes this will be ran as root.
suspend suspend-resume
add a comment |
I need to be able to log the times that an Ubuntu 10.04 Desktop system is suspended and resumed.
I can detect when the system is resumed via a DBus signal (org.freedesktop.UPower.Resuming()) but the corresponding "org.freedesktop.UPower.Sleeping()" signal is never fired. Ideally, I'd like to use DBus, but given the lack of success I'm having, I'd be happy with any solution providing it can be called from the command line.
I've discovered one way to do it:
tail -f /var/log/pm-suspend.log | grep "performing suspend"
This simply listens on one of the pm logs for the suspend logging. Although this works, it's probably rather brittle. I've found relying on log parsing to be rather problematic in the past due to changes in the log statements.
Ideally I'd like a more robust mechanism. The service that invokes this will be ran as root.
suspend suspend-resume
I need to be able to log the times that an Ubuntu 10.04 Desktop system is suspended and resumed.
I can detect when the system is resumed via a DBus signal (org.freedesktop.UPower.Resuming()) but the corresponding "org.freedesktop.UPower.Sleeping()" signal is never fired. Ideally, I'd like to use DBus, but given the lack of success I'm having, I'd be happy with any solution providing it can be called from the command line.
I've discovered one way to do it:
tail -f /var/log/pm-suspend.log | grep "performing suspend"
This simply listens on one of the pm logs for the suspend logging. Although this works, it's probably rather brittle. I've found relying on log parsing to be rather problematic in the past due to changes in the log statements.
Ideally I'd like a more robust mechanism. The service that invokes this will be ran as root.
suspend suspend-resume
suspend suspend-resume
edited Oct 18 '10 at 15:02
asked Oct 18 '10 at 13:42
Paul Robinson
334
334
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
Try putting the following in /etc/pm/sleep.d
. This should be independent of whether your machine uses APM or ACPI.
#!/bin/sh
LOGFILE="/var/log/sleep.log"
case "$1" in
resume)
echo "Resumed from suspend at `date`" >> "$LOGFILE"
;;
thaw)
echo "Resumed from hibernation at `date`" >> "$LOGFILE"
;;
suspend)
echo "Suspended to ram at `date`" >> "$LOGFILE"
;;
hibernate)
echo "Hibernated to disk at `date`" >> "$LOGFILE"
;;
esac
add a comment |
You can drop a script in /etc/apm/suspend.d. It should be executed every time the machine suspends.
You can also use /etc/apm/resume.d in a similar fashion to run a script when it wakes up.
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
add a comment |
A few other options that may work on more modern systems are:
cat /var/log/syslog | grep 'systemd-sleep'
which will display system suspensions and resumes with timestamps.
or
journalctl | grep suspend
which will display also display suspensions and resumes with timestamps. The suspends here will look something like PM: suspend entry (s2idle)
and the resumes will look like suspend exit
.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f8112%2fhow-do-i-detect-when-the-system-suspends%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try putting the following in /etc/pm/sleep.d
. This should be independent of whether your machine uses APM or ACPI.
#!/bin/sh
LOGFILE="/var/log/sleep.log"
case "$1" in
resume)
echo "Resumed from suspend at `date`" >> "$LOGFILE"
;;
thaw)
echo "Resumed from hibernation at `date`" >> "$LOGFILE"
;;
suspend)
echo "Suspended to ram at `date`" >> "$LOGFILE"
;;
hibernate)
echo "Hibernated to disk at `date`" >> "$LOGFILE"
;;
esac
add a comment |
Try putting the following in /etc/pm/sleep.d
. This should be independent of whether your machine uses APM or ACPI.
#!/bin/sh
LOGFILE="/var/log/sleep.log"
case "$1" in
resume)
echo "Resumed from suspend at `date`" >> "$LOGFILE"
;;
thaw)
echo "Resumed from hibernation at `date`" >> "$LOGFILE"
;;
suspend)
echo "Suspended to ram at `date`" >> "$LOGFILE"
;;
hibernate)
echo "Hibernated to disk at `date`" >> "$LOGFILE"
;;
esac
add a comment |
Try putting the following in /etc/pm/sleep.d
. This should be independent of whether your machine uses APM or ACPI.
#!/bin/sh
LOGFILE="/var/log/sleep.log"
case "$1" in
resume)
echo "Resumed from suspend at `date`" >> "$LOGFILE"
;;
thaw)
echo "Resumed from hibernation at `date`" >> "$LOGFILE"
;;
suspend)
echo "Suspended to ram at `date`" >> "$LOGFILE"
;;
hibernate)
echo "Hibernated to disk at `date`" >> "$LOGFILE"
;;
esac
Try putting the following in /etc/pm/sleep.d
. This should be independent of whether your machine uses APM or ACPI.
#!/bin/sh
LOGFILE="/var/log/sleep.log"
case "$1" in
resume)
echo "Resumed from suspend at `date`" >> "$LOGFILE"
;;
thaw)
echo "Resumed from hibernation at `date`" >> "$LOGFILE"
;;
suspend)
echo "Suspended to ram at `date`" >> "$LOGFILE"
;;
hibernate)
echo "Hibernated to disk at `date`" >> "$LOGFILE"
;;
esac
answered Oct 18 '10 at 15:22
Ryan Thompson
2,71332134
2,71332134
add a comment |
add a comment |
You can drop a script in /etc/apm/suspend.d. It should be executed every time the machine suspends.
You can also use /etc/apm/resume.d in a similar fashion to run a script when it wakes up.
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
add a comment |
You can drop a script in /etc/apm/suspend.d. It should be executed every time the machine suspends.
You can also use /etc/apm/resume.d in a similar fashion to run a script when it wakes up.
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
add a comment |
You can drop a script in /etc/apm/suspend.d. It should be executed every time the machine suspends.
You can also use /etc/apm/resume.d in a similar fashion to run a script when it wakes up.
You can drop a script in /etc/apm/suspend.d. It should be executed every time the machine suspends.
You can also use /etc/apm/resume.d in a similar fashion to run a script when it wakes up.
answered Oct 18 '10 at 13:48
Javier Rivera
29.8k977101
29.8k977101
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
add a comment |
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
Thanks for the answer, It seems like I don't have apm support in my kernel. I see "No APM support in kernel" when i run the command "apm". I know that I can enable this in the kernel for my machine. However, I need to run my program on other machines on which I won't be able to make this change so I don't think APM is going to work :-(
– Paul Robinson
Oct 18 '10 at 14:50
add a comment |
A few other options that may work on more modern systems are:
cat /var/log/syslog | grep 'systemd-sleep'
which will display system suspensions and resumes with timestamps.
or
journalctl | grep suspend
which will display also display suspensions and resumes with timestamps. The suspends here will look something like PM: suspend entry (s2idle)
and the resumes will look like suspend exit
.
add a comment |
A few other options that may work on more modern systems are:
cat /var/log/syslog | grep 'systemd-sleep'
which will display system suspensions and resumes with timestamps.
or
journalctl | grep suspend
which will display also display suspensions and resumes with timestamps. The suspends here will look something like PM: suspend entry (s2idle)
and the resumes will look like suspend exit
.
add a comment |
A few other options that may work on more modern systems are:
cat /var/log/syslog | grep 'systemd-sleep'
which will display system suspensions and resumes with timestamps.
or
journalctl | grep suspend
which will display also display suspensions and resumes with timestamps. The suspends here will look something like PM: suspend entry (s2idle)
and the resumes will look like suspend exit
.
A few other options that may work on more modern systems are:
cat /var/log/syslog | grep 'systemd-sleep'
which will display system suspensions and resumes with timestamps.
or
journalctl | grep suspend
which will display also display suspensions and resumes with timestamps. The suspends here will look something like PM: suspend entry (s2idle)
and the resumes will look like suspend exit
.
answered Dec 23 '18 at 7:23
Gregory Arenius
1012
1012
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- 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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f8112%2fhow-do-i-detect-when-the-system-suspends%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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