/usr/bin/env: ‘ruby’: No such file or directory
When crontab tries to execute the script:
@reboot sh /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
It creates me a log file with the following content: /usr/bin/env: ‘ruby’: No such file or directory
.
This is what I have in unicorn_start.sh:
#!/bin/bash
PATH="$PATH:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
/etc/init.d/unicorn_myapp start
If I execute unicorn_myapp or unicorn_start.sh manually, everything works fine. As I understand, I need to add an additional path to $PATH variable. What is the way of doing it? Thanks ahead.
EDIT:
unicorn_init.sh:
#!/bin/sh
### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Manage unicorn server
# Description: Start, stop, restart unicorn server for a specific application.
### END INIT INFO
set -e
# Feel free to change any of the following variables for your app:
TIMEOUT=${TIMEOUT-60}
APP_ROOT=/home/username/appname
PID=$APP_ROOT/tmp/pids/unicorn.pid
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
AS_USER=root
set -u
OLD_PIN="$PID.oldbin"
sig () {
test -s "$PID" && kill -$1 `cat $PID`
}
oldsig () {
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
}
run () {
if [ "$(id -un)" = "$AS_USER" ]; then
eval $1
else
su -c "$1" - $AS_USER
fi
}
case "$1" in
start)
sig 0 && echo >&2 "Already running" && exit 0
run "$CMD"
;;
stop)
sig QUIT && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
run "$CMD"
;;
upgrade)
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
then
n=$TIMEOUT
while test -s $OLD_PIN && test $n -ge 0
do
printf '.' && sleep 1 && n=$(( $n - 1 ))
done
echo
if test $n -lt 0 && test -s $OLD_PIN
then
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
exit 1
fi
exit 0
fi
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
run "$CMD"
;;
reopen-logs)
sig USR1
;;
*)
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
exit 1
;;
esac
server cron ruby paths rvm
add a comment |
When crontab tries to execute the script:
@reboot sh /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
It creates me a log file with the following content: /usr/bin/env: ‘ruby’: No such file or directory
.
This is what I have in unicorn_start.sh:
#!/bin/bash
PATH="$PATH:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
/etc/init.d/unicorn_myapp start
If I execute unicorn_myapp or unicorn_start.sh manually, everything works fine. As I understand, I need to add an additional path to $PATH variable. What is the way of doing it? Thanks ahead.
EDIT:
unicorn_init.sh:
#!/bin/sh
### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Manage unicorn server
# Description: Start, stop, restart unicorn server for a specific application.
### END INIT INFO
set -e
# Feel free to change any of the following variables for your app:
TIMEOUT=${TIMEOUT-60}
APP_ROOT=/home/username/appname
PID=$APP_ROOT/tmp/pids/unicorn.pid
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
AS_USER=root
set -u
OLD_PIN="$PID.oldbin"
sig () {
test -s "$PID" && kill -$1 `cat $PID`
}
oldsig () {
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
}
run () {
if [ "$(id -un)" = "$AS_USER" ]; then
eval $1
else
su -c "$1" - $AS_USER
fi
}
case "$1" in
start)
sig 0 && echo >&2 "Already running" && exit 0
run "$CMD"
;;
stop)
sig QUIT && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
run "$CMD"
;;
upgrade)
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
then
n=$TIMEOUT
while test -s $OLD_PIN && test $n -ge 0
do
printf '.' && sleep 1 && n=$(( $n - 1 ))
done
echo
if test $n -lt 0 && test -s $OLD_PIN
then
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
exit 1
fi
exit 0
fi
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
run "$CMD"
;;
reopen-logs)
sig USR1
;;
*)
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
exit 1
;;
esac
server cron ruby paths rvm
Do you want to start a daemon (assuming from/etc/init.d/
)? You should start it as a service in such a case, not usingcron
. askubuntu.com/questions/19320/how-to-enable-or-disable-services
– Melebius
Jul 27 '17 at 12:05
When I start it like service:sudo service unicorn_appname start
, it gives me an error:/etc/init.d/unicorn_appname: 1: eval: bundle: not found
– Alex Zakruzhetskyi
Jul 27 '17 at 12:15
You should show us the code in/etc/init.d/unicorn_myapp
. The code you’ve posted till now does not contain any call to/usr/bin/env
.
– Melebius
Jul 27 '17 at 13:34
unicorn_myapp
is a symlink tounicorn_init.sh
that is located in the rails project inapp/config
If you need the content ofunicorn_init.sh
, I'll add it to the post.
– Alex Zakruzhetskyi
Jul 27 '17 at 14:04
add a comment |
When crontab tries to execute the script:
@reboot sh /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
It creates me a log file with the following content: /usr/bin/env: ‘ruby’: No such file or directory
.
This is what I have in unicorn_start.sh:
#!/bin/bash
PATH="$PATH:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
/etc/init.d/unicorn_myapp start
If I execute unicorn_myapp or unicorn_start.sh manually, everything works fine. As I understand, I need to add an additional path to $PATH variable. What is the way of doing it? Thanks ahead.
EDIT:
unicorn_init.sh:
#!/bin/sh
### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Manage unicorn server
# Description: Start, stop, restart unicorn server for a specific application.
### END INIT INFO
set -e
# Feel free to change any of the following variables for your app:
TIMEOUT=${TIMEOUT-60}
APP_ROOT=/home/username/appname
PID=$APP_ROOT/tmp/pids/unicorn.pid
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
AS_USER=root
set -u
OLD_PIN="$PID.oldbin"
sig () {
test -s "$PID" && kill -$1 `cat $PID`
}
oldsig () {
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
}
run () {
if [ "$(id -un)" = "$AS_USER" ]; then
eval $1
else
su -c "$1" - $AS_USER
fi
}
case "$1" in
start)
sig 0 && echo >&2 "Already running" && exit 0
run "$CMD"
;;
stop)
sig QUIT && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
run "$CMD"
;;
upgrade)
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
then
n=$TIMEOUT
while test -s $OLD_PIN && test $n -ge 0
do
printf '.' && sleep 1 && n=$(( $n - 1 ))
done
echo
if test $n -lt 0 && test -s $OLD_PIN
then
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
exit 1
fi
exit 0
fi
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
run "$CMD"
;;
reopen-logs)
sig USR1
;;
*)
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
exit 1
;;
esac
server cron ruby paths rvm
When crontab tries to execute the script:
@reboot sh /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
It creates me a log file with the following content: /usr/bin/env: ‘ruby’: No such file or directory
.
This is what I have in unicorn_start.sh:
#!/bin/bash
PATH="$PATH:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
/etc/init.d/unicorn_myapp start
If I execute unicorn_myapp or unicorn_start.sh manually, everything works fine. As I understand, I need to add an additional path to $PATH variable. What is the way of doing it? Thanks ahead.
EDIT:
unicorn_init.sh:
#!/bin/sh
### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Manage unicorn server
# Description: Start, stop, restart unicorn server for a specific application.
### END INIT INFO
set -e
# Feel free to change any of the following variables for your app:
TIMEOUT=${TIMEOUT-60}
APP_ROOT=/home/username/appname
PID=$APP_ROOT/tmp/pids/unicorn.pid
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
AS_USER=root
set -u
OLD_PIN="$PID.oldbin"
sig () {
test -s "$PID" && kill -$1 `cat $PID`
}
oldsig () {
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
}
run () {
if [ "$(id -un)" = "$AS_USER" ]; then
eval $1
else
su -c "$1" - $AS_USER
fi
}
case "$1" in
start)
sig 0 && echo >&2 "Already running" && exit 0
run "$CMD"
;;
stop)
sig QUIT && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
run "$CMD"
;;
upgrade)
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
then
n=$TIMEOUT
while test -s $OLD_PIN && test $n -ge 0
do
printf '.' && sleep 1 && n=$(( $n - 1 ))
done
echo
if test $n -lt 0 && test -s $OLD_PIN
then
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
exit 1
fi
exit 0
fi
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
run "$CMD"
;;
reopen-logs)
sig USR1
;;
*)
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
exit 1
;;
esac
server cron ruby paths rvm
server cron ruby paths rvm
edited Jul 27 '17 at 14:08
Alex Zakruzhetskyi
asked Jul 27 '17 at 11:46
Alex ZakruzhetskyiAlex Zakruzhetskyi
11319
11319
Do you want to start a daemon (assuming from/etc/init.d/
)? You should start it as a service in such a case, not usingcron
. askubuntu.com/questions/19320/how-to-enable-or-disable-services
– Melebius
Jul 27 '17 at 12:05
When I start it like service:sudo service unicorn_appname start
, it gives me an error:/etc/init.d/unicorn_appname: 1: eval: bundle: not found
– Alex Zakruzhetskyi
Jul 27 '17 at 12:15
You should show us the code in/etc/init.d/unicorn_myapp
. The code you’ve posted till now does not contain any call to/usr/bin/env
.
– Melebius
Jul 27 '17 at 13:34
unicorn_myapp
is a symlink tounicorn_init.sh
that is located in the rails project inapp/config
If you need the content ofunicorn_init.sh
, I'll add it to the post.
– Alex Zakruzhetskyi
Jul 27 '17 at 14:04
add a comment |
Do you want to start a daemon (assuming from/etc/init.d/
)? You should start it as a service in such a case, not usingcron
. askubuntu.com/questions/19320/how-to-enable-or-disable-services
– Melebius
Jul 27 '17 at 12:05
When I start it like service:sudo service unicorn_appname start
, it gives me an error:/etc/init.d/unicorn_appname: 1: eval: bundle: not found
– Alex Zakruzhetskyi
Jul 27 '17 at 12:15
You should show us the code in/etc/init.d/unicorn_myapp
. The code you’ve posted till now does not contain any call to/usr/bin/env
.
– Melebius
Jul 27 '17 at 13:34
unicorn_myapp
is a symlink tounicorn_init.sh
that is located in the rails project inapp/config
If you need the content ofunicorn_init.sh
, I'll add it to the post.
– Alex Zakruzhetskyi
Jul 27 '17 at 14:04
Do you want to start a daemon (assuming from
/etc/init.d/
)? You should start it as a service in such a case, not using cron
. askubuntu.com/questions/19320/how-to-enable-or-disable-services– Melebius
Jul 27 '17 at 12:05
Do you want to start a daemon (assuming from
/etc/init.d/
)? You should start it as a service in such a case, not using cron
. askubuntu.com/questions/19320/how-to-enable-or-disable-services– Melebius
Jul 27 '17 at 12:05
When I start it like service:
sudo service unicorn_appname start
, it gives me an error: /etc/init.d/unicorn_appname: 1: eval: bundle: not found
– Alex Zakruzhetskyi
Jul 27 '17 at 12:15
When I start it like service:
sudo service unicorn_appname start
, it gives me an error: /etc/init.d/unicorn_appname: 1: eval: bundle: not found
– Alex Zakruzhetskyi
Jul 27 '17 at 12:15
You should show us the code in
/etc/init.d/unicorn_myapp
. The code you’ve posted till now does not contain any call to /usr/bin/env
.– Melebius
Jul 27 '17 at 13:34
You should show us the code in
/etc/init.d/unicorn_myapp
. The code you’ve posted till now does not contain any call to /usr/bin/env
.– Melebius
Jul 27 '17 at 13:34
unicorn_myapp
is a symlink to unicorn_init.sh
that is located in the rails project in app/config
If you need the content of unicorn_init.sh
, I'll add it to the post.– Alex Zakruzhetskyi
Jul 27 '17 at 14:04
unicorn_myapp
is a symlink to unicorn_init.sh
that is located in the rails project in app/config
If you need the content of unicorn_init.sh
, I'll add it to the post.– Alex Zakruzhetskyi
Jul 27 '17 at 14:04
add a comment |
2 Answers
2
active
oldest
votes
If you use the which command you should be able to see where your ruby executable is located e.g
which ruby
/usr/bin/ruby
The you could add that path to the $PATH variable to straight to the crontab (not sure what best practice may dictate but has worked for me in the past)
add a comment |
The default PATH crontab is using is "only" /usr/bin:/bin
, however you can adjust it.
Instead of writing the things in that script try adding it directly into the crontab command:
@reboot PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"; /etc/init.d/unicorn_myapp start > /home/username/unicorn_start.out 2>&1
You can also add the path variable above every cronjob so it's applicable to every task you put in there:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
#
#
* * * * * myjob.sh
@reboot /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
Still, it gives me the same error:/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
1
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
The output ofecho $PATH
:/root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
|
show 3 more comments
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f940307%2fusr-bin-env-ruby-no-such-file-or-directory%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
If you use the which command you should be able to see where your ruby executable is located e.g
which ruby
/usr/bin/ruby
The you could add that path to the $PATH variable to straight to the crontab (not sure what best practice may dictate but has worked for me in the past)
add a comment |
If you use the which command you should be able to see where your ruby executable is located e.g
which ruby
/usr/bin/ruby
The you could add that path to the $PATH variable to straight to the crontab (not sure what best practice may dictate but has worked for me in the past)
add a comment |
If you use the which command you should be able to see where your ruby executable is located e.g
which ruby
/usr/bin/ruby
The you could add that path to the $PATH variable to straight to the crontab (not sure what best practice may dictate but has worked for me in the past)
If you use the which command you should be able to see where your ruby executable is located e.g
which ruby
/usr/bin/ruby
The you could add that path to the $PATH variable to straight to the crontab (not sure what best practice may dictate but has worked for me in the past)
answered Jul 27 '17 at 12:04
mrjamesmyersmrjamesmyers
1011
1011
add a comment |
add a comment |
The default PATH crontab is using is "only" /usr/bin:/bin
, however you can adjust it.
Instead of writing the things in that script try adding it directly into the crontab command:
@reboot PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"; /etc/init.d/unicorn_myapp start > /home/username/unicorn_start.out 2>&1
You can also add the path variable above every cronjob so it's applicable to every task you put in there:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
#
#
* * * * * myjob.sh
@reboot /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
Still, it gives me the same error:/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
1
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
The output ofecho $PATH
:/root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
|
show 3 more comments
The default PATH crontab is using is "only" /usr/bin:/bin
, however you can adjust it.
Instead of writing the things in that script try adding it directly into the crontab command:
@reboot PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"; /etc/init.d/unicorn_myapp start > /home/username/unicorn_start.out 2>&1
You can also add the path variable above every cronjob so it's applicable to every task you put in there:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
#
#
* * * * * myjob.sh
@reboot /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
Still, it gives me the same error:/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
1
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
The output ofecho $PATH
:/root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
|
show 3 more comments
The default PATH crontab is using is "only" /usr/bin:/bin
, however you can adjust it.
Instead of writing the things in that script try adding it directly into the crontab command:
@reboot PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"; /etc/init.d/unicorn_myapp start > /home/username/unicorn_start.out 2>&1
You can also add the path variable above every cronjob so it's applicable to every task you put in there:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
#
#
* * * * * myjob.sh
@reboot /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
The default PATH crontab is using is "only" /usr/bin:/bin
, however you can adjust it.
Instead of writing the things in that script try adding it directly into the crontab command:
@reboot PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"; /etc/init.d/unicorn_myapp start > /home/username/unicorn_start.out 2>&1
You can also add the path variable above every cronjob so it's applicable to every task you put in there:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin"
#
#
* * * * * myjob.sh
@reboot /home/username/unicorn_start.sh > /home/username/unicorn_start.out 2>&1
answered Jul 27 '17 at 12:21
ZiazisZiazis
1,913419
1,913419
Still, it gives me the same error:/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
1
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
The output ofecho $PATH
:/root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
|
show 3 more comments
Still, it gives me the same error:/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
1
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
The output ofecho $PATH
:/root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
Still, it gives me the same error:
/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Still, it gives me the same error:
/usr/bin/env: ‘ruby’: No such file or directory
– Alex Zakruzhetskyi
Jul 27 '17 at 12:27
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
Which solution did you try?
– Ziazis
Jul 27 '17 at 12:31
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
The first one you wrote. EDIT: Tried the second solution, but the result didn't change.
– Alex Zakruzhetskyi
Jul 27 '17 at 12:32
1
1
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
Sounds more like an issue in your ruby script then cronjob issue. You can try the same with just a simple "echo $PATH" instead of your script and see what the PATH variable consists of or create a hello world ruby script and try piping that ouput into a file.
– Ziazis
Jul 27 '17 at 12:47
The output of
echo $PATH
: /root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
The output of
echo $PATH
: /root/bin:/root/.local/bin:/root/.rbenv/plugins/ruby-build/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.2-p180/bin:/snap/bin:/usr/local/rvm/bin
– Alex Zakruzhetskyi
Jul 27 '17 at 12:54
|
show 3 more comments
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f940307%2fusr-bin-env-ruby-no-such-file-or-directory%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Do you want to start a daemon (assuming from
/etc/init.d/
)? You should start it as a service in such a case, not usingcron
. askubuntu.com/questions/19320/how-to-enable-or-disable-services– Melebius
Jul 27 '17 at 12:05
When I start it like service:
sudo service unicorn_appname start
, it gives me an error:/etc/init.d/unicorn_appname: 1: eval: bundle: not found
– Alex Zakruzhetskyi
Jul 27 '17 at 12:15
You should show us the code in
/etc/init.d/unicorn_myapp
. The code you’ve posted till now does not contain any call to/usr/bin/env
.– Melebius
Jul 27 '17 at 13:34
unicorn_myapp
is a symlink tounicorn_init.sh
that is located in the rails project inapp/config
If you need the content ofunicorn_init.sh
, I'll add it to the post.– Alex Zakruzhetskyi
Jul 27 '17 at 14:04