Erlang start application in production

前端 未结 3 1323
甜味超标
甜味超标 2021-02-06 14:39

When I\'m testing my erlang application on localhost, I have a script that starts the server that looks like the following:

#!/bin/sh
PWD=\"$(pwd)\"
NAME=\"$(bas         


        
相关标签:
3条回答
  • 2021-02-06 15:01

    Well, you could try hooking it in to Apache (see here), or a simple solution that's not quite as hacky as screen sessions is to use nohup. If you're actually implementing this on a production server, and don't want to take the Apache route, you might consider an init script.

    0 讨论(0)
  • 2021-02-06 15:05

    Sounds like you want to use a custom boot script. A boot script tells the erlang system what to start. In the script you're using, you're setting the boot script with:

    -boot start_sasl
    

    http://www.erlang.org/doc/system_principles/system_principles.html, look for the section "User-Defined Boot Scripts"

    An easier option may be to convert your application to use rebar: https://github.com/basho/rebar. You would then be able to do the following:

    ./rebar compile generate
    

    This will create a release for the application, allowing you to then:

    ./rel/<app_name>/bin/<app_name>
    

    Same principles, just all wrapped up for easy use.

    0 讨论(0)
  • 2021-02-06 15:05

    Add the parameter -detached. The documentation summarizes this nicely:

    Starts the Erlang runtime system detached from the system console. Useful for running daemons and backgrounds processes.

    Once you do that, you can get your application to start with the -s parameter. Assuming $NAME = myapp, init will attempt to call myapp:start/0 (you can customize this if you want). That function should end with a call to application:start(myapp).

    If you can get all of those puzzle pieces in place, you should have a working script.

    0 讨论(0)
提交回复
热议问题