Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何从crontab运行脚本并避免;“加载错误”;_Ruby_Bash_Shell_Cron_Rvm - Fatal编程技术网

Ruby 如何从crontab运行脚本并避免;“加载错误”;

Ruby 如何从crontab运行脚本并避免;“加载错误”;,ruby,bash,shell,cron,rvm,Ruby,Bash,Shell,Cron,Rvm,我想在Mac OS上从crontab运行脚本,但出现错误: ruby: Operation not permitted -- /Users/vitalii/Desktop/Home/update/update.rb (LoadError) 我对cron任务和设置的首选项是使用rvm cron setup创建的: #sm start rvm PATH="/Users/vitalii/.rvm/gems/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.

我想在Mac OS上从crontab运行脚本,但出现错误:

ruby: Operation not permitted -- /Users/vitalii/Desktop/Home/update/update.rb (LoadError)
我对cron任务和设置的首选项是使用
rvm cron setup
创建的:

#sm start rvm
PATH="/Users/vitalii/.rvm/gems/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.4.1@global/bin:/Users/vitalii/.rvm/rubies/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.4.1@global/bin:/Users/vitalii/.rvm/rubies/ruby-2.4.1/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Applications/Postgres.app/Contents/Versions/latest/bin:/Users/vitalii/.rvm/bin"
GEM_HOME='/Users/vitalii/.rvm/gems/ruby-2.4.1'
GEM_PATH='/Users/vitalii/.rvm/gems/ruby-2.4.1:/Users/vitalii/.rvm/gems/ruby-2.4.1@global'
MY_RUBY_HOME='/Users/vitalii/.rvm/rubies/ruby-2.4.1'
IRBRC='/Users/vitalii/.rvm/rubies/ruby-2.4.1/.irbrc'
RUBY_VERSION='ruby-2.4.1'
#sm end rvm

* * * * * ruby /Users/vitalii/Desktop/Home/update/update.rb >> /Users/vitalii/Desktop/logfile.txt 2>&1
我给了每个文件使用
chmod 777
执行的权限,但没有任何更改,错误重复出现

文件
update.rb
的内容如下

puts 'Hello, World!!!'

有人能告诉我发生了什么事以及我做错了什么吗?

当通过
crontab-e
设置crontab作业或将它们放入
/etc/crontab
时,会有一点不同

$ crontab -e
# m h dom mon dow command
  * *   *  *  *   echo ok

$ nano /etc/crontab
# m h dom mon dow user command
  * *   *  *  *   root echo ok

是这样吗?

通过
crontab-e
设置crontab作业或将它们放入
/etc/crontab

$ crontab -e
# m h dom mon dow command
  * *   *  *  *   echo ok

$ nano /etc/crontab
# m h dom mon dow user command
  * *   *  *  *   root echo ok

是这样吗?

我找到了解决办法,因为我用的是莫哈韦。
我需要在系统中进行其他设置。谁会想到。。。

这是一个问题,因为您需要允许cron的权限。 并为crontab-e执行正确的run命令,这

***/bin/bash-l-c'ruby/Users/vitalii/Desktop/Home/update/update.rb'
我找到了解决方案,因为我使用了莫哈韦。
我需要在系统中进行其他设置。谁会想到。。。

这是一个问题,因为您需要允许cron的权限。 并为crontab-e执行正确的run命令,这

***/bin/bash-l-c'ruby/Users/vitalii/Desktop/Home/update/update.rb'

我以前没有使用过
rvm cron安装程序
,是用
crontab-e
打开的同一个crontab吗?如果是这样,您可以尝试对环境变量进行注释,并使用完整的ruby路径
/bin/ruby
/home/.rvm/rubies/ruby-x.x/bin/ruby
“和”“非常有用。
/Users/vitalii/Desktop/home/update
确实存在吗
Home
是可疑的,因为通常我们不会有一个名为Home的目录,但是我们有一个名为
$Home
的环境变量,它相当于
~
/Users/vitalii
。请注意,它与您将输出重定向到的位置不同:
/Users/vitalii/Desktop/logfile.txt
@theTinMan,Home它是我的主目录项目,是的,我用她来完成我的项目。Logfile.txt将不同,因为它位于不同的位置。@Vitalii:错误消息表示Ruby在加载文件时遇到错误。如果从命令行运行相同的命令,它是否有效?
ruby-e'会在你的crontab工作中加入“hello”>>…
吗?我以前没有使用过
rvm cron设置
,是用
crontab-e
打开的同一个crontab吗?如果是这样,您可以尝试对环境变量进行注释,并使用完整的ruby路径
/bin/ruby
/home/.rvm/rubies/ruby-x.x/bin/ruby
“和”“非常有用。
/Users/vitalii/Desktop/home/update
确实存在吗
Home
是可疑的,因为通常我们不会有一个名为Home的目录,但是我们有一个名为
$Home
的环境变量,它相当于
~
/Users/vitalii
。请注意,它与您将输出重定向到的位置不同:
/Users/vitalii/Desktop/logfile.txt
@theTinMan,Home它是我的主目录项目,是的,我用她来完成我的项目。Logfile.txt将不同,因为它位于不同的位置。@Vitalii:错误消息表示Ruby在加载文件时遇到错误。如果从命令行运行相同的命令,它是否有效?
ruby-e会在你的crontab工作中加入“hello”>>…
吗?不完全是。问题出在莫哈韦本身,你需要在系统中安装一些设置——不完全是这样。问题出在莫哈韦本身,您需要在系统中安装一些设置