我有一个正在运行的 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