ddollar / forego

Foreman in Go
1.43k stars 176 forks source link

Using exec breaks Procfiles with multiple commands per process #91

Closed annismckenzie closed 7 years ago

annismckenzie commented 7 years ago

Commit 5d3c4e433ee65508b0fd42bd6bd3ee8a900820b5 breaks Procfiles with multiple commands per process. I'm not against changing my Procfile if there is a fix.

annismckenzie commented 7 years ago

There's two comments on the commit – GitHub seems to not be able to crosslink this automatically.

ddollar commented 7 years ago

If you need to use multiple commands per process, wrap them with sh:

web: sh -c "mkdir -p /foo; /bin/something-else"
annismckenzie commented 7 years ago

Thank you!

dcorking commented 6 years ago

The need for this workaround seems to suggest that some foreman Procfiles are now incompatible with forego (in my case it seems to also affect a Procfile that used to work in forego)

For example this works in foreman but fails in forego:

worker2: FOO=bar printenv FOO
$ forego start
forego    | starting worker2.1 on port 5000
worker2.1 | bash: line 0: exec: FOO=bar: not found
$ foreman start
11:36:06 worker2.1 | started with pid 31407
11:36:06 worker2.1 | bar
11:36:06 worker2.1 | exited with code 0
11:36:06 system    | sending SIGTERM to all processes

Is compatibility with foreman an objective of the project? If not I'll update my Procfiles and go on my way.