azurite launch scripts should support disconnecting from parent process stdio streams
- Dominant language
- TypeScript
- Stars
- 2.3k
- Forks
- 393
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 36
Description
### Which service(blob, file, queue, table) does this issue concern?
blob
### Which version of the Azurite was used?
3.8.0
### Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
npm (the NuGet one hasn't been touched in years. Is it deprecated?)
### What's the Node.js version?
12
### What problem was encountered?
The `azurite` scripts should support spinning off a child process that doesn't use its parent process's stdio streams, so that a script can start the emulator and proceed to do other things (e.g. run tests) while the emulator continues to run.
I find the solution to #382 unsatisfactory.
Azure Pipelines doesn't like that `azurite &` leads to a child process that doesn't exit when `bash` does:
https://dev.azure.com/andrewarnott/OSS/_build/results?buildId=3547&view=logs&j=2d2b3007-3c5c-5840-9bb0-2b1ea49925f3&t=3cfa5d13-d456-5c32-1f87-e23b82c00683&l=15
> The STDIO streams did not close within 10 seconds of the exit event from process 'C:\Program Files\Git\bin\bash.exe'. This may indicate a child process inherited the STDIO streams and has not yet exited.
Besides the ignorable warning this presents, it also represents 10 seconds of an unnecessary pause in the pipeline.
Most other emulators including Azure Storage Emulator support a command that allows the process to continue running while the console that spawned it goes on (or exits). Can azurite please support this?
### Steps to reproduce the issue?
`azurite-blob`
### Have you found a mitigation/solution?
I'd like to see usage like this where a script could contain:
```bash
azurite start
dotnet test
azurite stop
```
But more than that, I want one step in Azure Pipelines to be `azurite start` while the next step is the use of the `DotNetCoreCLI` task to run tests so I get all the test integration features of Azure Pipelines. But right now, I can't do that because the stdio-bound azurite process gets terminated when the prior bash step exits.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.