如果我创建如下文件:
import os
print os.getlogin()并用cron运行它,我得到了一个异常
print os.getlogin()
OSError: [Errno 22] Invalid argument如果我在shell中手动运行它--它可以工作。
问题是,commit()中的GitPython 0.3.1使用了这个函数,我需要使用它。
有什么变通方法吗?
我已经在Ubuntu10.10/python2.6.6和Debian5.0.6/python2.5.2上进行了测试。
发布于 2010-12-09 23:19:28
这里有一个未经测试的可能可行的变通方法:os.getlogin()调用C库中的getlogin(),后者在对应于当前进程的utmp记录中查找登录名。由于没有cron的utmp记录,您可以尝试使用以下命令创建一个
sessreg -a <logname> ; do_stuff ; sessreg -d <logname>在您的crontab中。也许您必须对sessreg选项进行一些调整。如果您尝试过,请让我知道这是否真的有效:)
https://stackoverflow.com/questions/4399617
复制相似问题