Я попробовал решение krubo за свой Thinkpad T420. Однако на последнем шаге с install
, Я должен был добавить a --force
сделать modprobe успешное; иначе это дало мне ту же ошибку как первоначально.
Однако, когда я пытаюсь изменить свои настройки батареи, echo
команда к /sys/devices/platform/smapi/BAT0/stop_charge_thresh
успешно, но после чтения его, cat
все еще дает 100.
Также на перезагрузку, модуль больше не загружается, и я должен вручную modprobe снова. Это было зафиксировано путем добавления tp_smapi
кому: /etc/modules
.
Однако я рад сообщить, что hdaps работает; я должен был изменить последние настройки в /etc/defaults/hdaps
, FORCEENABLE
кому: yes
. Я проверил его с помощью этой ссылки: Проверка hdapsd работает (ThinkPad Wiki).
В случае Вашего конкретного сценария, ни одного Myscript
ни command D
будет когда-либо выполняться. Вы определили функцию C
, но Вы не называете его.
Порядок выполнения:
command B
выполнения к завершению.command E
выполнения к завершению.Если необходимо было звонить C
, это работало бы Myscript
к завершению, затем выполненному command D
к завершению.
Все, что Вы вызываете в сценарии оболочки, работает в порядке, он замечен и работает к завершению. Если необходимо выполнить что-то параллельно с чем-то еще, необходимо использовать управление заданиями (выезд, как амперсанд &
символ используется для помещения заданий в фоновом режиме). Быстрый пример:
A
B
Выполнения A
пока это не сделано, затем работает B
пока это не сделано. Концы сценария.
A &
B
Выполнения A
в фоновом режиме, затем выполнения B на переднем плане. Сценарий оболочки заканчивается когда B
завершился. A
может все еще работать.
A &
B &
Выполнения A
в фоновом режиме, затем (не ожидая A
завершаться), выполнения B
в фоновом режиме. Сценарий сразу заканчивается.
A &
B &
wait
Выполнения A
в фоновом режиме, затем (не ожидая A
завершаться), выполнения B
в фоновом режиме. Сценарий затем ожидает обоих A
и B
завершаться перед выходом.
Существует исключение, которое будет детализировано позже, но те команды выполняются той же оболочкой (даже если Myscript
открывает новую оболочку, это и command D
будет обладать точно той же "родительской" оболочкой, которая выполняет их). Поскольку *ОТКЛОНЯЮТ оболочки, не поддерживают распараллеливание, Myscript
должен остановиться его выполнение (с любыми кодами выхода) для разрешения управлению продвинулось command D
.
Исключение имеет место, где Вы отсоединяетесь Myscript
, с a NOHUP
сигнал, или путем записи a &
позади Myscript
. Это поместит сценарий в фон.
Изучите следующий фрагмент кода:
openssl enc -e bf -in verybigfile -out outputfile -k thisismykey &; # this is a long operation because of the size of the very big file
echo 'hi!' # this will be written during the encrypting operation
Я надеюсь, что это почти очевидно теперь.
Ответ Alexios содержит большую точку: Вы не вызываете функцию, таким образом, она никогда не будет работать.