[Bug 1172692]
Dirk F
1172692 at bugs.launchpad.net
Tue Feb 23 16:41:31 UTC 2016
Comment on attachment 68712
Improved patch to save previous hibernation method
Review of attachment 68712:
-----------------------------------------------------------------
In do_hibernate() the attempt to save and restore the active mode in
/sys/power/disk fails, causing "sh: I/O error" message in pm log
(attempting to write something that isn't one of the modes in
/sys/power/disk, namely an empty string). Instrumenting the function I
found that HIBERNATE_MODE_SAVE was never set.
The characters [] are special in a shell pattern (which is what follows
the ## and %% shell variable expansion modifiers) and have to be
escaped: \[ \].
The following works as you intended:
do_hibernate()
{
[ -n "${HIBERNATE_MODE}" ] && \
grep -qw "${HIBERNATE_MODE}" /sys/power/disk && \
#df 2016-02-07 Shell patterns have to be escaped \[ \]! Fixes sh: I/O error when -z $HIBERNATE_MODE_SAVE
HIBERNATE_MODE_SAVE=$(cat /sys/power/disk) && \
HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE##*\[}" && \
HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE%%\]*}" && \
echo -n "${HIBERNATE_MODE}" > /sys/power/disk
echo -n "disk" > /sys/power/state
RET=$?
echo -n "$HIBERNATE_MODE_SAVE" > /sys/power/disk
return "$RET"
}
Although you could make the penultimate line as follows I don't
recommend it because it would hide any problems like the escaping issue
that could cause HIBERNATE_MODE_SAVE to be invalid:
[ -n "$HIBERNATE_MODE_SAVE" ] && echo -n
"$HIBERNATE_MODE_SAVE" > /sys/power/disk
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to pm-utils in Ubuntu.
https://bugs.launchpad.net/bugs/1172692
Title:
Please implement in-kernel suspend to both
To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/1172692/+subscriptions
More information about the Ubuntu-server-bugs
mailing list