免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3546 | 回复: 12
打印 上一主题 下一主题

求助,运行.profile文件时报错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-10 13:26 |只看该作者 |倒序浏览
shell程序里要用到.profile的变量
所以在shell的最前面加上语句
. $HOME/.profile
在前端执行的时候没有问题,但是将shell放在后台执行的时候
nohup sh dd.sh&
程序报错,前端的报错信息是
fjdcc3:/home/xxpt/xxpt/usr/zhout>nohup sh dd.sh&
[1]     7831
fjdcc3:/home/xxpt/xxpt/usr/zhout>Sending output to nohup.out

[1] + Stopped (tty output)     nohup sh dd.sh&

nohup.out文件里只有一句话“Not a termina”
请问是什么原因?
环境:HPUX

shell 程序代码如下
. $HOME/.profile
echo "success"

profile文件内容如下

# @(#)B.11.11_LR

# Default user .profile file (/usr/bin/sh initialization).

# Set up the terminal:
        if [ "$TERM" = "" ]
        then
                eval ` tset -s -Q -m 'hp' `
        else
                eval ` tset -s -Q `
        fi
        stty erase "^H" kill "^U" intr "^C" eof "^D"
        stty hupcl ixon ixoff
        tabs

# Set up the search paths:
        PATH=$PATH:.

# Set up the shell environment:
        set -u
        trap "echo 'logout'" 0
# Set up the shell variables:
        EDITOR=vi
        export EDITOR

#Set up informix for xxpt
        TERM=vt100
        INFORMIXDIR=/home/informix
        INFORMIXSERVER=xxptdbser
        ONCONFIG=onconfig.xxpt
        PATH=$PATHINFORMIXDIR/bin
        LD_LIBRARY_PATH=$INFORMIXDIR/lib/esqlINFORMIXDIR/libHOME/cardmis/lib
HOME/cardmis/lib/esql
        export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH LD_LIBRARY_PATH TERM

        DBDATE=Y4MD
        export DBDATE


        LANG=en_US.iso88591;
        #LANG=en_US.8859-1
        export LANG



        DB_LOCALE=en_US.8859-1
        export DB_LOCALE

        CLIENT_LOCALE=en_US.8859-1
        export CLIENT_LOCALE

case $LOGNAME in        # include command number in prompt
root)   PS1="!# " ;;
*)PS1=`hostname`'PWD>' ;;
esac
export PS1

#---------------------xxpt evn --------------------#
ZHDATAHOME=/home/moia/data/load;export ZHDATAHOME
FLATHOME=$HOME/xxpt;export FLATHOME
DATAHOME=/home/xxpt/xxpt; export DATAHOME
FLATDB=ccb_dm;export FLATDB
CONFIGDIR=$FLATHOME/ini;export CONFIGDIR
PATH=$PATHFLATHOME/binFLATHOME/toolsFLATHOME/shl;export PATH
PATH=$PATHFLATHOME/ini/srcFLATHOME/src/dm_nbk;export PATH
WRKDATE_FILE=$FLATHOME/etc/wrkdate;export WRKDATE_FILE
RDSQL_FILE=$FLATHOME/log/rdsql.log;export RDSQL_FILE


LOAD_COUNT=10
LOAD_CONFIG_FILE=$HOME/bin/loadtablecfg.ini
export LOAD_COUNT LOAD_CONFIG_FILE

RUNMODE=INCREMENT
#RUNMODE=FULL
export RUNMODE

LD_BRARY_PATH=$HOME/lib;
export LD_BRARY_PATH

[ 本帖最后由 silverdust 于 2006-1-10 13:49 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-01-10 13:32 |只看该作者
没看懂,看报错好象是没有找到标准输出,不过这些环境变量都可以从父shell中继承过来的,为何要再执行一遍?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2006-01-10 13:36 |只看该作者
TERM='' nohup sh dd.sh&

论坛徽章:
0
4 [报告]
发表于 2006-01-10 13:58 |只看该作者
楼上的大哥们能不能说清楚一点。
因为有很多变量是直接在.profile中定义的,我怕程序放在后台跑得时候,取不到profile里的变量,所以想先执行一下。
环境我写错了,应该是hpux
是不是hp下面不用做这步操作?

论坛徽章:
0
5 [报告]
发表于 2006-01-10 14:00 |只看该作者
只要你在程序中不改变那些变量,子shell都会继承父shell的所有环境变量的

论坛徽章:
0
6 [报告]
发表于 2006-01-10 14:19 |只看该作者
是嘛?因为原来在aix机器上跑程序的时候,有些程序放在后台跑的话,就取不到环境变量。
难道hp的不同?
不过,这样写了之后前端运行是没有报错的,所以肯定还是哪里设置的不对,放在后台就报错了

论坛徽章:
0
7 [报告]
发表于 2006-01-10 14:22 |只看该作者
if [ "$TERM" = "" ]
        then
                eval ` tset -s -Q -m 'hp' `
        else
                eval ` tset -s -Q `
        fi
是不是tset的问题,你可以去掉看看

论坛徽章:
0
8 [报告]
发表于 2006-01-10 14:24 |只看该作者
记得HP的机器好象都要设置TREM=vt100

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
9 [报告]
发表于 2006-01-10 14:26 |只看该作者
.profile就是给登录shell用的,放后台就把# Set up the terminal:那部分拿掉

论坛徽章:
0
10 [报告]
发表于 2006-01-10 14:48 |只看该作者
因为程序是要放在crontab里定时启动的,本身的用户并不是root,所以调用程序的时候是没法执行.profile文件的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP