当前位置: 技术问答>linux和unix
crontab启动进程错误:standard in mush be a tty
来源: 互联网 发布时间:2015-09-16
本文导语: 我在crontab写的内容是: # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.3516 installed on Mon Mar 21 10:32:11 2005) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash HOME=/home/orac...
我在crontab写的内容是:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.3516 installed on Mon Mar 21 10:32:11 2005)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
SHELL=/bin/bash
HOME=/home/oracle
PATH=/usr/kerberos/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin/bin:/sbin:/usr/X11R6/bin:/home/oracle/OraHome1/bin
LOGNAME=oracle
LD_ASSUME_KERNEL=2.4.1
ORACLE_BASE=/home/oracle/OraHome1/
ORACLE_HOME=/home/oracle/OraHome1/
ORACLE_TERM=xterm
*/5 * * * * su - oracle -c '/home/oracle/process_up'
错误是:standard in mush be a tty
假如我直接使用*/5 * * * * /home/oracle/process_up
因为我使用pro*c连接数据库,数据库会连接不上,请帮忙
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.3516 installed on Mon Mar 21 10:32:11 2005)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
SHELL=/bin/bash
HOME=/home/oracle
PATH=/usr/kerberos/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin/bin:/sbin:/usr/X11R6/bin:/home/oracle/OraHome1/bin
LOGNAME=oracle
LD_ASSUME_KERNEL=2.4.1
ORACLE_BASE=/home/oracle/OraHome1/
ORACLE_HOME=/home/oracle/OraHome1/
ORACLE_TERM=xterm
*/5 * * * * su - oracle -c '/home/oracle/process_up'
错误是:standard in mush be a tty
假如我直接使用*/5 * * * * /home/oracle/process_up
因为我使用pro*c连接数据库,数据库会连接不上,请帮忙
|
standard in must be a tty
意思应该是说stdin(标准输入设备)必须是一个tty(虚拟终端,就是人机交互的接口)
su - oracle .... #你这里使用了标准输入 '-' 但因为crond守护启动的进程或shell并没有tty,所以报这个错。
你加好
SHELL=/bin/bash
HOME=/home/oracle
LOGNAME=oracle
就行了
其它变量应该会从oracle用户目录下的.bash_profile读取不用,这里设置,这里设.bash_profile里没有的变量较好。
然后试着直接用*/5 * * * * /home/oracle/process_up &> myerror.log试试,看看这种情况下出什么错,
另外连不上数据库,不一定是crontab造成的,看看其他原因
意思应该是说stdin(标准输入设备)必须是一个tty(虚拟终端,就是人机交互的接口)
su - oracle .... #你这里使用了标准输入 '-' 但因为crond守护启动的进程或shell并没有tty,所以报这个错。
你加好
SHELL=/bin/bash
HOME=/home/oracle
LOGNAME=oracle
就行了
其它变量应该会从oracle用户目录下的.bash_profile读取不用,这里设置,这里设.bash_profile里没有的变量较好。
然后试着直接用*/5 * * * * /home/oracle/process_up &> myerror.log试试,看看这种情况下出什么错,
另外连不上数据库,不一定是crontab造成的,看看其他原因
|
ORACLE_TERM=xterm这一句去掉试试