1

我已遵循本指南:当任何作业完成时,SLURM 是否可以触发脚本(由前端 SLURM 用户实现)?当工作盯着 slurm 时,它会触发我已经实现的脚本。

我有以下脚本。它可由 SlurmUser 读取和执行。在脚本内部,我想调用ipfs并返回生成的哈希值。

你好.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/*

netlab@ebloc:~/.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

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

4

1 回答 1

2

尝试在hello.sh中使用ipfs二进制文件的完整路径,因为PATH环境变量可能缺少 %GOPATH%/bin 目录。

此外,IPFS 从HOME环境变量派生其存储库的路径。如果HOME环境变量未设置或指向没有初始化 IPFS 存储库的主目录,则它将找不到已初始化的存储库,并且将退出并出现错误。要覆盖派生路径,请在调用 ipfs 二进制文件之前设置IPFS_PATH环境变量:export IPFS_PATH=/path/to/ipfsrepo

于 2017-05-05T22:54:07.107 回答