我制作了一个脚本,我需要whenever
每隔30.minutes
将其与ln -s scruffy.rb /usr/local/bin
相关联可以正常运行,但之后会发生这种情况:
gilani@raspberrypi:~ $ /usr/local/bin/scruffy.rb
-bash: /usr/local/bin/scruffy.rb: Too many levels of symbolic links
我在哪里以及如何设置符号链接以便cron可以运行我的脚本?
答案 0 :(得分:4)
试试这个:
ln -s /absolute/path/to/scruffy.rb /usr/local/bin
^^^^^^^^^^^^^^^^^^ adjust this path
您的原始命令会生成一个名为/usr/local/bin/scruffy.rb
的符号链接,其目标设置为scruffy.rb
。问题是符号链接目标中的相对路径被解释为相对于包含符号链接的目录,而不是相对于运行ln
命令的路径。所以现在/usr/local/bin/scruffy.rb
是它自己的符号链接,因为相对路径scruffy.rb
被解释为相对于/usr/local/bin
会让你回到符号链接本身。所以你有一个指向自己的链接,这会创建一个无限循环。
修改:如果您不想输入scruffy.rb
的完整绝对路径并从包含它的目录中执行ln
,可以简单地做:
ln -s "$PWD/scruffy.rb" /usr/local/bin
正如mudasobwa指出的那样。