【系统】Mac crontab 无法退出编辑模式问题
背景
之前写过一篇:【系统】Mac 本地crontab定时任务详解 的文章,有很多小伙伴后台留言反馈,在启用 crontab -e 进入到编辑器模式后,无法退出保存,即按esc 或 ctrl + 0 无法退出到命令模式下,这里说个说明。
一、问题回答
1.定位原因:
在Mac系统中使用crontab命令编辑定时任务时,按下ESC键无法退出编辑模式通常是由于终端模拟器与crontab进程之间的键盘输入冲突造成的。
2.确认编辑器类型
一般系统有2种编辑器,根据你的系统或第三方编辑器的类型确认,这里讲2种常见的。
- 如果是vi编辑器:
完成内容输入后,按Esc键退出插入模式(如果按Esc键没反应,可以尝试按Ctrl + [组合键来替代,其功能和Esc键相同)。
接着输入:wq(冒号、字母w、字母q)并回车,:w表示保存文件,:q表示退出编辑器,这样就可以保存编辑好的crontab内容并退出编辑器了。 - 如果是nano编辑器:
按Ctrl + O组合键保存文件,会提示输入文件名等信息,直接回车确认即可。
然后按Ctrl + X组合键退出编辑器。
3.确保编辑器进入正确
3.1 确认是否有crontab调度任务
如图确认没有crontab 任务
3.2 进入编辑器并确保编辑器正常
如图输入指令后,下方的临时文件路径会消失。
3.3 保存操作
后台小伙伴反馈到3.2操作之后,按esc无法退出,以致于无法进行:wq 的保存退出操作。这里即涉及到2.提到的确认编辑器内容,即要确认系统编辑器是vi 还是nano,会存在终端模拟器与crontab进程之间的键盘输入冲突。
解法: 如果是冲突存在,即你确信已经在正确的模式下按下了Esc键,但仍然无法退出,可以尝试在命令行中直接指定其他编辑器,如使用 EDITOR=vim crontab -e,以确保不是默认编辑器的问题。
4.确认crontab任务存在
如图,正常保存退出后,在命令页面,输入crontab -l 即可查看任务清单,确保任务存在。