我正在尝试在我的用户下设置一个 cron 作业。我运行 crontab -e,进行编辑,然后尝试保存并退出。我收到以下错误消息/var/spool/cron/: mkstemp: Permission denied
。
ls -al /var/spool/cron/crontabs 的相关输出
drwxr-xr-x 2 root crontab 4096 Nov 4 10:09 .
drwxr-xr-x 5 root root 4096 Nov 19 2014 ..
-rw-rw-rw- 1 greg crontab 91 Nov 4 11:04 greg
-rw------- 1 root crontab 1231 Oct 29 16:18 root
Run Code Online (Sandbox Code Playgroud)
我可以直接编辑 greg 文件并保存它,但我似乎仍然无法运行该作业,即使我在更新后重新启动 cron 也是如此。我需要做什么来解决这个问题?
的输出ls -lha $(which crontab)
是:
-rwxr-sr-x 1 root crontab 36K Feb 8 2013 /usr/bin/crontab
Run Code Online (Sandbox Code Playgroud)
的输出groups greg
是:
greg : greg adm sudo crontab …
Run Code Online (Sandbox Code Playgroud) 从 systemctl 联机帮助页:
暂停
暂停系统。这将触发特殊目标单元 suspend.target 的激活。此命令是异步的,将在挂起操作成功入队后返回。它不会等待挂起/恢复周期完成。
在我的系统上suspend.target
看起来像这样:
[Unit]
Description=Suspend
Documentation=man:systemd.special(7)
DefaultDependencies=no
Requires=systemd-suspend.service
After=systemd-suspend.service
StopWhenUnneeded=yes
Run Code Online (Sandbox Code Playgroud)
如果我查看man:systemd.special(7)
那里列出的内容,我会发现:
suspend.target 用于挂起系统的特殊目标单元。这会引入 sleep.target。
如果我深入研究,systemd-suspend.service
我会得到:
systemd-suspend.service 是 suspend.target 拉入的系统服务,负责实际的系统挂起。
...
在内部,此服务将像“mem”这样的字符串回显到 /sys/power/state 中,以触发实际的系统挂起。可以在 /etc/systemd/sleep.conf 或 sleep.conf.d 文件的“[Sleep]”部分中配置的确切位置。
上的文档sleep.conf
告诉我:
默认配置是在编译时定义的,所以只有在需要偏离默认配置时才需要配置文件。
sleep.conf
我的系统上没有,所以它必须使用编译的默认值。我无法弄清楚那些是什么。
默认情况下发送给/sys/power/state
朋友的确切命令是systemctl suspend
什么?