diff --git a/misc/launchd/README.md b/misc/launchd/README.md new file mode 100644 index 000000000..cd4d6207e --- /dev/null +++ b/misc/launchd/README.md @@ -0,0 +1,5 @@ +# ipfs launchd agent + +A bare-bones launchd agent file for ipfs. To have launchd automatically run the ipfs daemon for you, run `./misc/launchd/install.sh` + +Note that the `ipfs` binary must be on the *system* PATH for this to work. Adding a symlink in /usr/bin works well enough for me. diff --git a/misc/launchd/install.sh b/misc/launchd/install.sh new file mode 100755 index 000000000..3d18e8526 --- /dev/null +++ b/misc/launchd/install.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +src_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +plist=io.ipfs.ipfs-daemon.plist +dest_dir="$HOME/Library/LaunchAgents" +IPFS_PATH="${IPFS_PATH:-$HOME/.ipfs}" +escaped_ipfs_path=$(echo $IPFS_PATH|sed 's/\//\\\//g') + +mkdir -p "$dest_dir" + +sed 's/{{IPFS_PATH}}/'"$escaped_ipfs_path"'/g' \ + "$src_dir/$plist" \ + > "$dest_dir/$plist" + +launchctl list | grep ipfs-daemon >/dev/null +if [ $? ]; then + echo Unloading existing ipfs-daemon + launchctl unload "$dest_dir/$plist" +fi + +echo Loading ipfs-daemon +launchctl load "$dest_dir/$plist" +launchctl list | grep ipfs-daemon diff --git a/misc/launchd/io.ipfs.ipfs-daemon.plist b/misc/launchd/io.ipfs.ipfs-daemon.plist new file mode 100644 index 000000000..e7bf9a6e3 --- /dev/null +++ b/misc/launchd/io.ipfs.ipfs-daemon.plist @@ -0,0 +1,27 @@ + + + + + KeepAlive + + Label + io.ipfs.ipfs-daemon + ProgramArguments + + ipfs + daemon + + EnvironmentVariables + + IPFS_PATH + {{IPFS_PATH}} + + RunAtLoad + + StandardErrorPath + {{IPFS_PATH}}/logs/stderr.log + StandardOutPath + {{IPFS_PATH}}/logs/stdout.log + + +