2017-05-05 74 views
1

我遵循本指南:Could SLURM trigger a script(implemented by the frontend-SLURM user) when any job is completed?当作业注视着slurm时,它会触发我已实施的脚本。外部用户呼叫将无法运行IPFS呼叫

我有以下脚本。它可由SlurmUser读取和执行。内部脚本我想打电话给ipfs并返回生成的散列。

hello.sh

#!/bin/bash  
export IPFS_PATH="path/to/ipfs_repo/.ipfs" 
x=$(/usr/local/bin/ipfs add -r path/to/added) 

更新的slurm.conf这条线。

MailProg=/path/to/my_script.sh 

因此,当我通过SLURM运行作业时,可以触发此脚本。但它不能运行ipfs add -r path/to/added命令,所以它不能够返回一个有效的散列。 IPFS应该将当前路径上的文件写入.ipfs文件夹并返回一个散列。

我所做的:

sudo chmod +x /usr/local/bin/ipfs 
sudo chmod +x path/to/added/* 

[email protected]:~/.ipfs$ ls -ls 
total 16 
4 drwxr-xr-x 78 netlab netlab 4096 May 6 12:02 blocks 
4 -rwxr-xr-x 1 netlab netlab 3705 May 5 12:14 config 
4 drwxr-xr-x 2 netlab netlab 4096 May 6 12:02 datastore 
4 -rwxr-xr-x 1 netlab netlab 2 May 5 12:14 version 

感谢您宝贵的时间和帮助。

回答

1

尝试使用hello.sh作为PATH环境变量IPF问题二进制文件的完整路径可能是缺少%GOPATH%/ bin目录。

此外,IPFS从环境变量派生出其存储库的路径。如果没有设置环境变量或指向没有初始化IPFS回购的主目录,那么它将不会找到已初始化的存储库,并且它将退出且出现错误。 出口IPFS_PATH = /路径/到/ ipfsrepo

+0

'出口IPFS_PATH = “路径/到/ ipfs_repo/.ipfs”'固定它:重写得到的路径,调用IPF问题二进制之前设置IPFS_PATH环境变量。多谢先生! @TarnayKálmán – Alper