让cron继承XDG_RUNTIME_DIR

让cron继承XDG_RUNTIME_DIR

我有一个正在运行的 cron 作业emacsclient,需要对其XDG_RUNTIME_DIR进行设置。我可以将变量设置为类似于/run/user/1000中的内容crontab,但是这假设 cron 的所有者是第一个登录的用户(否则他们XDG_RUNTIME_DIR就是/run/user/1001这样的)。

有没有更好的方法来继承cron 作业所有者cron的价值?XDG_RUNTIME_DIR

答案1

建议:

编写专用的 cron 脚本:

包括当前用户的环境上下文和其他环境变量。

cat << EOF > $HOME/croned_script.sh
#!/bin/bash
source $HOME/.bash_profile
export XDG_RUNTIME_DIR=/run/user/1000
#
# your program and arguments from here:
emacsclient
EOF

将专用 cron 脚本附加到 crontab 列表:

在此示例中,cron 模式每天中午 12:00 运行一次

contab -l| sed "-i * 11 * * * bash -c $HOME/croned_script.sh"| crontab

相关内容