Терминал возвращает :нет crontab для пользователя

Решение — отключить khugepagedдефрагментацию:

echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
echo 0 | sudo tee /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

См. этот ответ на вопрос Arch Linux перестает отвечать на запросы из-за khugepaged .

Кроме того, возможно, было бы неплохо ограничить объем оперативной памяти, которую VMware может использовать для запуска виртуальных машин, чтобы зарезервировать ее часть для хост-системы (Правка > Настройки ).

VMware settings for reserved memory


Примечание. :Я повторно -публикую этот ответ под этим вопросом, потому что ответ очень трудно найти — мне буквально потребовались годы.

0
24.08.2020, 23:31
1 ответ

Сообщение от crontab -l -u john, которое вы использовали в сценарии.

С одной стороны, вы использовали эту команду. Единственный (? )причина его использования состоит в том, чтобы сохранить старый crontab и добавить к нему (а не просто перезаписать его ). Это может быть хорошим решением, если есть старый crontab с произвольным содержимым, которое вы хотите сохранить. Это может быть плохим решением, если вы запускаете скрипт несколько раз. (добавляемых строк будет накапливаться ).

С другой стороны, вы говорите, что сообщение "очевидно и бесполезно", я думаю, потому что вы знаете, что у пользователя еще нет crontab (). Но если вы точно знаете, что crontab не существует, то в первую очередь нет необходимости в crontab -l …. Так что возможно вам это не нужно.

Тот факт, что вы использовали эту команду, можно интерпретировать так, как будто вы ожидали (или, по крайней мере, разрешили )существование crontab. Так что разумно предупредить вас, если его не существует. Это то, что делает команда. Вы можете подавить сообщение, отправив stderr на/dev/null:

{ crontab -l -u john 2>/dev/null; echo …
2
18.03.2021, 23:10

Теги

Похожие вопросы