I have script script.sh
:
#!/usr/bin/env bash
# pm2 seems to always run in `bash` regardless of `#!`
echo "running in $(readlink -f /proc/$$/exe)"
# Redirect to both stdout(1) and stderr(2)
echo "hello" | tee /dev/fd/2
I am running it with pm2 start script.sh
I can see logs at pm2 logs
like so:
tee: /dev/fd/2: No such device or address
Which means script is unable to access /dev/fd
. Although this problem doesn’t happen when directly running in a bash terminal.