JP Silvashy
JP Silvashy

Reputation: 48525

shell forcing demonized program to start without output

I'm trying to run a script that is required to have an exit code of 0. Unfortunalty I cannot use an init.d or other startup script to control this this, so I must make this work.

Basically if I understand AWS's docs correctly (elastic beanstalk), I need be able to run the following two commands and exit with a 0 and provide no other output to stdout.

As the root user I need to cd to a particular dir and run these two commands:

pkill -f que
bundle exec que

In my actually script I have:

#!/usr/bin/env bash

su -s /bin/bash -c "cd /some/dir && nohup pkill -f que &>/dev/null &"
sleep 10
su -s /bin/bash -c "cd /some/dir && nohup bundle exec que &"

Which still causes this error to be raised:

returned non-zero exit status 1 (Executor::NonZeroExitStatus)

Any tips for how to silently run those commands correctly?


I'm also looking at these for ideas: https://blog.eq8.eu/article/aws-elasticbeanstalk-hooks.html http://www.dannemanne.com/posts/post-deployment_script_on_elastic_beanstalk_restart_delayed_job

But its still not clear to me how this is supposed to exit successfully

Upvotes: 0

Views: 92

Answers (1)

pcjr
pcjr

Reputation: 419

Perhaps I'm missing something, but wouldn't this be easily solved by using two shell scripts? One with cd, pkill, and bundle. Call this script (foo.sh) something like:

#!/usr/bin/env bash
su -c ./foo.sh > /dev/null 2>&1 < /dev/null
exit 0

Upvotes: 1

Related Questions