权限被拒绝(公键盘互动)得到了这个错误的话,我想cvs结账perl。

是什么问题和如何解决这个吗?

代码:

system ( "CSVROOT:--- CVSRSH:--- cvs co a ");

# i have proper value in cvs root and cvs rsh .

其单独运行和使用ssh的关键

有帮助吗?

解决方案

步骤来诊断的错误:

  • 您使用的是SSH的钥匙吗?
  • 那钥匙有一个密码?
  • 它的工作运行时通过手吗?
  • 是脚本运行为的相同的用户运行时通过手吗?
  • 是的脚本中运行在相同的环境中运行时通过手吗?(例如 cron 作业做的不运行在相同的环境)

如果你认为所有的答案都是肯定的,那么很可能是最后一次答复是真的没有。如果剧本是从运行一个计划程序喜欢 cron 它最有可能不会运行的相同的环境中运行时。我通常解决,这是用一个脚本之间的调度和Perl脚本:

#!/bin/bash

source /home/USERNAME/.profile

#set any other environment variables it needs like

export CSVROOT=:pserver:USERNAME@HOST:/path/to/repo
export CVSRSH=ssh

/path/to/perl/script/script.pl

其他提示

后续调查后,查斯的问题:

  • 不,命令正常运行 /bin/sh 或者一些其他外壳?测试,执行 /bin/sh 命令开始Bourne壳和尝试的命令的一方面。我不熟悉"CVSROOT:---"符号-那是意味着设定CVSROOT环境变量?在伯恩的外壳的这是通常使用"=",从来没有看到":"使用。

  • 没有命令的,当运行方面,预计某些输入从你?我从来没有见过 cvs co 这样做,但我不会用它与ssh。

  • 尝试增加一个重定向到结束的命令,看起来是什么在文件之后,运行:

    system ( "CSVROOT:--- CVSRSH:--- cvs co a > /tmp/log_cmd 2>&1");

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top