Duplicate Processes; Port in use
ainsleyclark opened this issue · comments
Ainsley Clark commented
Using echo
for a HTTP server, when I save a file, it looks like two processes are launched and I get a bind:address already in use error
This looks to be the same issue: #426
But it was closed, is there a way to solve this? I have tried to set the kill_delay
to 10s
but no avail.
Many thanks in advance.
air.toml
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"
[build]
args_bin = []
bin = "./tmp/main"
cmd = "go build -o ./tmp/main ."
delay = 0
exclude_dir = ["assets", "tmp", "vendor", "testdata", "node_modules"]
exclude_file = []
exclude_regex = ["_test.go", "_templ.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "tmpl", "templ"]
include_file = []
kill_delay = "10s"
log = "build-errors.log"
poll = false
poll_interval = 0
post_cmd = []
pre_cmd = ["go generate ./..."]
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = true
[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"
[log]
main_only = false
time = false
[misc]
clean_on_exit = false
[screen]
clear_on_rebuild = false
keep_scroll = true
Output (Debug)
____ __
/ __/___/ / ___
/ _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.11.4
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
O\
⇨ http server started on [::]:3000
event: CHMOD "/views/layouts/base_templ.go"
event: CHMOD "/views/hello_templ.go"
event: CREATE "/main.go~"
event: CHMOD "/main.go"
event: WRITE "/main.go"
main.go has changed
event: REMOVE "/main.go~"
main.go has changed
> go generate ./...
main.go has changed
> go generate ./...
trying to kill pid 30616, cmd [/bin/sh -c /tmp/main]
cmd killed, pid: 30616
(✓) Complete [ updates=2 duration=15.481375ms ]
event: CHMOD "/views/layouts/base_templ.go"
event: WRITE "/views/layouts/base_templ.go"
event: WRITE|CHMOD "/views/hello_templ.go"
event: WRITE|CHMOD "/views/layouts/base_templ.go"
(✓) Complete [ updates=2 duration=16.432875ms ]
event: WRITE|CHMOD "/views/hello_templ.go"
event: WRITE|CHMOD "/views/layouts/base_templ.go"
event: WRITE|CHMOD "/views/hello_templ.go"
event: CHMOD "/views/hello_templ.go"
event: WRITE "/views/hello_templ.go"
event: CHMOD "/views/layouts/base_templ.go"
building...
event: WRITE "/views/layouts/base_templ.go"
building...
event: CHMOD "/views/layouts/base_templ.go"
event: WRITE "/views/layouts/base_templ.go"
event: CHMOD "/views/hello_templ.go"
event: WRITE "/views/hello_templ.go"
event: CHMOD "/main.go"
running...
running process pid 30206
____ __
/ __/___/ / ___
/ _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.11.4
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
O\
____ __
/ __/___/ / ___
/ _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.11.4
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
O\
{"time":"2024-03-05T12:35:00.081768Z","level":"FATAL","prefix":"echo","file":"main.go","line":"22","message":"listen tcp :3000: bind: address already in use"}
{"time":"2024-03-05T12:35:00.081904Z","level":"FATAL","prefix":"echo","file":"main.go","line":"22","message":"listen tcp :3000: bind: address already in use"}
Process Exit with Code: 1
event: CHMOD "/views/layouts/base_templ.go"
event: CHMOD "/views/hello_templ.go"
Pablo Grant commented
Having a similar issue, except it happens when u start a program and SIGINT (Ctrl +C) to end it. Doesn't feel like air is killing it's child processes imo.
Leander commented
Might help to enable send_interrupt
in air.toml?
Ainsley Clark commented
Fantastic thank you @leandergangso, that's got it.