LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 895|回复: 4

请教一个与at命令有关的奇怪问题

[复制链接]
发表于 2005-1-7 22:35:34 | 显示全部楼层 |阅读模式
我想用at命令在指定时间执行某个任务,发觉在bash的命令行下执行的好好的,放到at命令下就不可以了。
我的命令如下
at -f cmd aa:bb
cmd中:
g03<5T+P_Thiophene_2-opt-r1.com>5T+P_Thiophene_2-opt-r1.out
其中g03是我安装的一个计算程序。
下面是at命令的出错提示:
g03: error while loading shared libraries: util.so: cannot open shared object file: No such file or directory

我把atjob目录下的文件直接在bash下执行是没有问题的。
另外还有一个疑问:at命令在后台调用,是否与nohup等效,当系统注销后进程还可以存在吗?
发表于 2005-1-7 23:41:20 | 显示全部楼层
Post by ybyygu
我想用at命令在指定时间执行某个任务,发觉在bash的命令行下执行的好好的,放到at命令下就不可以了。
我的命令如下
at -f cmd aa:bb
cmd中:
g03<5T+P_Thiophene_2-opt-r1.com>5T+P_Thiophene_2-opt-r1.out
其中g03是我安装的一个计算程序。
下面是at命令的出错提示:
g03: error while loading shared libraries: util.so: cannot open shared object file: No such file or directory

我把atjob目录下的文件直接在bash下执行是没有问题的。
另外还有一个疑问:at命令在后台调用,是否与nohup等效,当系统注销后进程还可以存在吗?

用物理路径试试
发表于 2005-1-7 23:50:18 | 显示全部楼层
另外还有一个疑问:at命令在后台调用,是否与nohup等效,当系统注销后进程还可以存在吗?


注销后还存在,我的at是定时播放提示音乐的,注销后,第二天启动,启动的时候提示音乐会响,然后,at继续存在(按照启动时间延后预定时间)

特别省事

    
 楼主| 发表于 2005-1-8 00:15:51 | 显示全部楼层
换物理路径后错误依旧。
很可能是因为at命令的执行环境与bash不同引起。
现在想弄明白,如果改变或定制at的执行环境?

附at文件
#!/bin/sh
# atrun uid=1000 gid=0
# mail   ybyygu 0
umask 22
MANPATH=/opt/intel_fc_80/man:; export MANPATH
GAUSS_ARCHDIR=/home/gaussian/g03/arch; export GAUSS_ARCHDIR
INTEL_LICENSE_FILE=/opt/intel_fc_80/licenses; export INTEL_LICENSE_FILE
G03BASIS=/home/gaussian/g03/basis; export G03BASIS
KMP_DUPLICATE_LIB_OK=TRUE; export KMP_DUPLICATE_LIB_OK
TRAP_FPE=OVERFL=ABORT\;DIVZERO=ABORT\;INT_OVERFL=ABORT; export TRAP_FPE
CPMD_PP_LIBRARY_PATH=/home/cpmd/PP_LIBRARY/; export CPMD_PP_LIBRARY_PATH
F_ERROPT1=271,271,2,1,2,2,2,2; export F_ERROPT1
OLDPWD=/home/ybyygu; export OLDPWD
SSH_TTY=/dev/pts/0; export SSH_TTY
USER=ybyygu; export USER
PP_LIBRARY_PATH=/home/cpmd/PP_LIBRARY/; export PP_LIBRARY_PATH
GMAIN=/home/gaussian/g03/bsd:/home/gaussian/g03/private:/home/gaussian/g03; export GMAIN
MAIL=/var/mail/ybyygu; export MAIL
PATH=/opt/intel_fc_80/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/home/gaussian/g
03/bsd:/home/gaussian/g03/private:/home/gaussian/g03; export PATH
PWD=/home/ybyygu/gjf/stop; export PWD
XMODIFIERS=@im=fcitx; export XMODIFIERS
LANG=zh_CN.GBK; export LANG
GAUSS_EXEDIR=/home/gaussian/g03/bsd:/home/gaussian/g03/private:/home/gaussian/g03; export GAUSS
_EXEDIR
GAUSS_SCRDIR=/home/gaussian/scratch; export GAUSS_SCRDIR
MP_STACK_OVERFLOW=OFF; export MP_STACK_OVERFLOW
g03root=/home/gaussian; export g03root
SHLVL=1; export SHLVL
HOME=/home/ybyygu; export HOME
LANGUAGE=zh_CN:zh:en_US:en; export LANGUAGE
LS_OPTIONS=--color=auto; export LS_OPTIONS
LOGNAME=ybyygu; export LOGNAME
cd /home/ybyygu/gjf/stop || {
         echo 'Execution directory inaccessible' >&2
         exit 1
}
g03<5T+P_Thiophene_2-opt-r1.com>5T+P_Thiophene_2-opt-r1.out
 楼主| 发表于 2005-1-8 03:11:51 | 显示全部楼层
现在大概清楚了:
at调用的是非交互式的bash,所以与直接在命令行下执行结果不同。
我在脚本文件里重新加载bash配置文件就可以了。
source ~/.bashrc
......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表