Есть еще одно решение без добавления файла в config.d, просто используя wakealarm в / sys / class / rtc / rtc0. Использовать устаревший код в pm-functions (/ usr / lib / pm-utils) после комментариев #, поскольку ядро не поддерживает напрямую ..., (потому что текущее ядро (после чего-то 3.6) напрямую поддерживает). Верните этот код и добавьте в do_suspend () часть вместо do_suspend_hybrid () и используйте патч для pm-функций (если они не исправит его).
Устаревший код (приостановить, затем спящий режим, когда вызывается suspend_hybrid) :
# since the kernel does not directly support hybrid sleep, we do
# something else -- suspend and schedule an alarm to go into
# hibernate if we have slept long enough.
# Only do this if we do not need to do any special video hackery on resume
# from hibernate, though.
if [ -z "$SUSPEND_HYBRID_MODULE" -a -w "$PM_RTC/wakealarm" ] && \
check_suspend && check_hibernate && ! is_set $HIBERNATE_RESUME_POST_VIDEO; \
then
SUSPEND_HYBRID_MODULE="kernel"
do_suspend_hybrid() {
WAKETIME=$(( $(cat "$PM_RTC/since_epoch") + PM_HIBERNATE_DELAY))
echo >"$PM_RTC/wakealarm"
echo $WAKETIME > "$PM_RTC/wakealarm"
if do_suspend; then
NOW=$(cat "$PM_RTC/since_epoch")
if [ "$NOW" -ge "$WAKETIME" -a "$NOW" -lt $((WAKETIME + 30)) ]; then
log "Woken by RTC alarm, hibernating."
# if hibernate fails for any reason, go back to suspend.
do_hibernate || do_suspend
else
echo > "$PM_RTC/wakealarm"
fi
else
# if we cannot suspend, just try to hibernate.
do_hibernate
fi
}
fi
Рекомендуется. Еще проще использовать uswsusp в то же время максимизировать выгоду s2both, т. Е. S2both при приостановке. Поместите восстановленный код в do_suspend () часть модуля uswsusp (/usr/lib/pm-utils/module.d).
Возвращенный код (suspend_hybrid при вызове suspend):
WAKETIME=$(( $(cat "$PM_RTC/since_epoch") + PM_HIBERNATE_DELAY))
echo >"$PM_RTC/wakealarm"
echo $WAKETIME > "$PM_RTC/wakealarm"
if do_suspend_hybrid; then
NOW=$(cat "$PM_RTC/since_epoch")
if [ "$NOW" -ge "$WAKETIME" -a "$NOW" -lt $((WAKETIME + 30)) ]; then
log "Woken by RTC alarm, hibernating."
# if hibernate fails for any reason, go back to suspend_hybrid.
do_hibernate || do_suspend_hybrid
else
echo > "$PM_RTC/wakealarm"
fi
else
# when do_suspend is being called, convert to suspend_hybrid.
do_suspend_hybrid
fi
С помощью uswsusp мы можем видеть прогресс приостановки / спящего режима и обратный процесс, отображаемый в тексте, даже мы можем прервите его, нажав обратное пространство. Без uswsusp, suspend / hibernate просто появляются - исчезают досадно, особенно когда запускается wakealarm и выполняется спящий режим (s2disk в uswsusp). Установите период сна перед спящим в обычном месте в файле pm-functions.
# variables to handle hibernate after suspend support
PM_HIBERNATE_DELAY=900 # 15 minutes
PM_RTC=/sys/class/rtc/rtc0
Вот мода uswsusp: (помните, этот модуль вызывается из pm-функций, поэтому вставленные переменные одинаковы )
#!/bin/sh
# disable processing of 90chvt and 99video.
# s2ram and s2disk handle all this stuff internally.
uswsusp_hooks()
{
disablehook 99video "disabled by uswsusp"
}
# Since we disabled 99video, we need to take responsibility for proper
# quirk handling. s2ram handles all common video quirks internally,
# so all we have to do is translate the HAL standard options to s2ram options.
uswsusp_get_quirks()
{
OPTS=""
ACPI_SLEEP=0
for opt in $PM_CMDLINE; do
case "${opt##--quirk-}" in # just quirks, please
dpms-on) ;; # no-op
dpms-suspend) ;; # no-op
radeon-off) OPTS="$OPTS --radeontool" ;;
reset-brightness) ;; # no-op
s3-bios) ACPI_SLEEP=$(($ACPI_SLEEP + 1)) ;;
s3-mode) ACPI_SLEEP=$(($ACPI_SLEEP + 2)) ;;
vbe-post) OPTS="$OPTS --vbe_post" ;;
vbemode-restore) OPTS="$OPTS --vbe_mode" ;;
vbestate-restore) OPTS="$OPTS --vbe_save" ;;
vga-mode-3) ;; # no-op
save-pci) OPTS="$OPTS --pci_save" ;;
none) QUIRK_NONE="true" ;;
*) continue ;;
esac
done
[ $ACPI_SLEEP -ne 0 ] && OPTS="$OPTS --acpi_sleep $ACPI_SLEEP"
# if we were told to ignore quirks, do so.
# This is arguably not the best way to do things, but...
[ "$QUIRK_NONE" = "true" ] && OPTS=""
}
# Since we disabled 99video, we also need to handle displaying
# help info for the quirks we handle.
uswsusp_help()
{
echo # first echo makes it look nicer.
echo "s2ram video quirk handler options:"
echo
echo " --quirk-radeon-off"
echo " --quirk-s3-bios"
echo " --quirk-s3-mode"
echo " --quirk-vbe-post"
echo " --quirk-vbemode-restore"
echo " --quirk-vbestate-restore"
echo " --quirk-save-pci"
echo " --quirk-none"
}
# This idiom is used for all sleep methods. Only declare the actual
# do_ method if:
# 1: some other sleep module has not already done so, and
# 2: this sleep method can actually work on this system.
#
# For suspend, if SUSPEND_MODULE is set then something else has already
# implemented do_suspend. We could just check to see of do_suspend was
# already declared using command_exists, but using a dedicated environment
# variable makes it easier to debug when we have to know what sleep module
# ended up claiming ownership of a given sleep method.
if [ -z "$SUSPEND_MODULE" ] && command_exists s2ram && \
( grep -q mem /sys/power/state || \
( [ -c /dev/pmu ] && check_suspend_pmu; ); ); then
SUSPEND_MODULE="uswsusp"
do_suspend()
{
WAKETIME=$(( $(cat "$PM_RTC/since_epoch") + PM_HIBERNATE_DELAY))
echo >"$PM_RTC/wakealarm"
echo $WAKETIME > "$PM_RTC/wakealarm"
if do_suspend_hybrid; then
NOW=$(cat "$PM_RTC/since_epoch")
if [ "$NOW" -ge "$WAKETIME" -a "$NOW" -lt $((WAKETIME + 30)) ]; then
log "Woken by RTC alarm, hibernating."
# if hibernate fails for any reason, go back to suspend_hybrid.
do_hibernate || do_suspend_hybrid
else
echo > "$PM_RTC/wakealarm"
fi
else
# when do_suspend is being called, convert to suspend_hybrid.
do_suspend_hybrid
fi
}
fi
if [ -z "$HIBERNATE_MODULE" ] && \
[ -f /sys/power/disk ] && \
grep -q disk /sys/power/state && \
[ -c /dev/snapshot ] &&
command_exists s2disk; then
HIBERNATE_MODULE="uswsusp"
do_hibernate()
{
s2disk
}
fi
if [ -z "$SUSPEND_HYBRID_MODULE" ] &&
grep -q mem /sys/power/state && \
command_exists s2both && \
check_hibernate; then
SUSPEND_HYBRID_MODULE="uswsusp"
do_suspend_hybrid()
{
uswsusp_get_quirks
s2both --force $OPTS
}
if [ "$METHOD" = "suspend_hybrid" ]; then
add_before_hooks uswsusp_hooks
add_module_help uswsusp_help
fi
fi
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch:
The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.
Пример:
touch newfile
Используйте команду touch :
Утилита touch устанавливает время изменения файлов и время доступа к текущему времени суток. Если файл не существует, он создается с разрешениями по умолчанию.
Пример:
touch newfile
Используйте команду touch :
Утилита touch устанавливает время изменения файлов и время доступа к текущему времени суток. Если файл не существует, он создается с разрешениями по умолчанию.
Пример:
touch newfile
Используйте команду touch :
Утилита touch устанавливает время изменения файлов и время доступа к текущему времени суток. Если файл не существует, он создается с разрешениями по умолчанию.
Пример:
touch newfile
touch newfile.txt
или другое расширение, также (если вам нужно указать расширение).
– gotqn
26 April 2014 в 13:18
newfile
уже существует и не пуст, тогда touch newfile
оставит вас с непустым i> файлом. Возможно, не то, что вы хотели.
– Camille Goudeseune
26 September 2017 в 17:47
newfile
уже существует, команда touch
будет просто обновлять временную метку файла (для чего именно такая команда) без редактирования содержимое файла.
– C0deDaedalus
13 March 2018 в 15:20
> newfile
Также создаст пустой файл. Если файл уже существует, он будет усечен (опустошен). Чтобы сохранить содержимое файла, используйте >> для добавления:
>> file
Даже если файл существует, содержимое будет не тронуто.
create : Если у вас нет содержимого для ввода, это быстрее:
user@host$ :> newfile
user@host$ :>> new_or_existing_file
Примечание. : - команда здесь. Это не часть приглашения.
cat /dev/null > file1.ext
точный способ есть и другой способ
echo "" > file2.ext
Разница заключается в том, что file1.ext будет равен нулю, а file2.ext - один байт. Вы можете проверить это на
ls -l file*.*
С помощью редактора vim вы также можете создать пустой файл.
vim filename
Затем сохраните
:wq
Команда
echo -n > file
создает пустой файл, если ваша версия echo поддерживает ключ -n.
Или вы могли бы использовать printf [!d2 ]
printf '' > file
Однострочный Python:
$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt
В принципе, реализация python для touch.
Мы можем сделать это короче:
$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt
Команда
echo -n > file
создает пустой файл, если ваша версия echo поддерживает ключ -n.
Или вы могли бы использовать printf
printf '' > file
> newfile
Также создаст пустой файл. Если файл уже существует, он будет усечен (опустошен). Чтобы сохранить содержимое файла, используйте >> для добавления:
>> file
Даже если файл существует, содержимое будет не тронуто.
create : Если у вас нет содержимого для ввода, это быстрее:
user@host$ :> newfile
user@host$ :>> new_or_existing_file
Примечание. : - команда здесь. Это не часть приглашения.
cat /dev/null > file1.ext
точный способ есть и другой способ
echo "" > file2.ext
Разница заключается в том, что file1.ext будет равен нулю, а file2.ext - один байт. Вы можете проверить это на
ls -l file*.*
Однострочный Python:
$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt
В принципе, реализация python для touch.
Мы можем сделать это короче:
$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt
Команда
echo -n > file
создает пустой файл, если ваша версия echo поддерживает ключ -n.
Или вы могли бы использовать printf
printf '' > file
> newfile
Также создаст пустой файл. Если файл уже существует, он будет усечен (опустошен). Чтобы сохранить содержимое файла, используйте >> для добавления:
>> file
Даже если файл существует, содержимое будет не тронуто.
create : Если у вас нет содержимого для ввода, это быстрее:
user@host$ :> newfile
user@host$ :>> new_or_existing_file
Примечание. : - команда здесь. Это не часть приглашения.
cat /dev/null > file1.ext
точный способ есть и другой способ
echo "" > file2.ext
Разница заключается в том, что file1.ext будет равен нулю, а file2.ext - один байт. Вы можете проверить это на
ls -l file*.*
Однострочный Python:
$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt
В принципе, реализация python для touch.
Мы можем сделать это короче:
$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt
Команда
echo -n > file
создает пустой файл, если ваша версия echo поддерживает ключ -n.
Или вы могли бы использовать printf
printf '' > file
> newfile
Также создаст пустой файл. Если файл уже существует, он будет усечен (опустошен). Чтобы сохранить содержимое файла, используйте >> для добавления:
>> file
Даже если файл существует, содержимое будет не тронуто.
create : Если у вас нет содержимого для ввода, это быстрее:
user@host$ :> newfile
user@host$ :>> new_or_existing_file
Примечание. : - команда здесь. Это не часть приглашения.
cat /dev/null > file1.ext
точный способ есть и другой способ
echo "" > file2.ext
Разница заключается в том, что file1.ext будет равен нулю, а file2.ext - один байт. Вы можете проверить это на
ls -l file*.*
Однострочный Python:
$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt
В принципе, реализация python для touch.
Мы можем сделать это короче:
$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt
Команда
echo -n > file
создает пустой файл, если ваша версия echo поддерживает ключ -n.
Или вы могли бы использовать printf
printf '' > file
> newfile
Также создаст пустой файл. Если файл уже существует, он будет усечен (опустошен). Чтобы сохранить содержимое файла, используйте >> для добавления:
>> file
Даже если файл существует, содержимое будет не тронуто.
create : Если у вас нет содержимого для ввода, это быстрее:
user@host$ :> newfile
user@host$ :>> new_or_existing_file
Примечание. : - команда здесь. Это не часть приглашения.