mirror of https://github.com/restic/restic.git
backup: Fix shutdown hang when running in the background
On shutdown the backup commands waits for the terminal output goroutine to stop. However while running in the background the goroutine ignored the canceled context.
This commit is contained in:
parent
3264eae9f6
commit
401ef92c5f
|
@ -0,0 +1,8 @@
|
||||||
|
Bugfix: On Linux `backup` hangs during exit when run as a background job
|
||||||
|
|
||||||
|
On Linux, when running in the background restic failed to stop the terminal
|
||||||
|
output of the `backup` command after it had completed. This caused restic to
|
||||||
|
hang until moved to the foreground. This has been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3152
|
||||||
|
https://forum.restic.net/t/restic-alpine-container-cron-hangs-epoll-pwait/3334
|
|
@ -96,11 +96,9 @@ func (t *Terminal) run(ctx context.Context) {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
if IsProcessBackground(t.fd) {
|
if !IsProcessBackground(t.fd) {
|
||||||
// ignore all messages, do nothing, we are in the background process group
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
t.undoStatus(len(status))
|
t.undoStatus(len(status))
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue