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 -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs