programing

Gitbash 오류: 하위 프로세스를 포크할 수 없습니다.사용 가능한 터미널이 없습니다(-1).

goodsources 2023. 7. 15. 10:05
반응형

Gitbash 오류: 하위 프로세스를 포크할 수 없습니다.사용 가능한 터미널이 없습니다(-1).

나는 이전에 최대 8개의 Gitbash 터미널을 동시에 실행한 적이 있습니다.

현재 저는 2개 밖에 없습니다.

저는 이 오류를 이전에 본 적이 없으며 무엇이 원인인지 이해하지 못합니다.

어떤 도움이라도 주시면 감사하겠습니다!

첨부된 사진:

enter image description here

Google 그룹에서 유사한 문제 및 해결 방법 발견

Windows 명령 프롬프트를 열고 명령을 실행했습니다.

$ tasklist

내 기트배시 셸에서 만든 ssh 연결은 창이 닫혀 있고 사용 가능한 기트배시 셸 창이 걸려 있을 때 닫히지 않은 것처럼 보입니다.

이것은 위험한 해결책일 수 있지만 Windows 명령 프롬프트에서 실행했습니다.

$ taskkill /F /IM ssh.exe 

이 후에 모든 것이 다시 작동하는 것으로 보입니다.직접적으로 고아 과정의 문제가 아니었을 수도 있지만, 적어도 저에게는 효과가 있었습니다.

추가 참고: 다음과 같은 다른 프로세스도 제거할 수 있습니다.

$ taskkill /F /IM vim.exe

제 경우에는 VS 코드 사용과 관련이 있었습니다.이전에 Gitbash 터미널을 사용하여 VS 코드를 열고 실행한 적이 있습니다.

code .

터미널을 닫습니다.

열려 있는 모든 VS 코드 창을 닫으면 문제가 해결됩니다.

단말기를 gitbash로 열도록 구성된 편집기나 IDE가 있을 때 IDE/IDE가 실행되면 gitbash가 "C:"에서 bash로 스핀업됩니다.\Windows\System32\bash.exe" 및 다른 창에서 bash를 열려는 시도는 충돌할 수 있습니다.

가장 좋은 해결책은 IDE/Editor bash를 종료하고 새 창에서 열거나 IDE/Editor 명령에서 계속하는 것입니다.

종료를 사용하지 않고 gitbash 콘솔을 종료하면 gitbash 창에서 문제가 발생합니다.문제를 해결하기 위해 윈도우즈 작업 관리자에서 ssh-agent.exe 작업을 죽이는 것을 발견했습니다.

이 문제에 대한 해결 방법은 다음과 같습니다.

  1. Git Bash 창을 닫습니다.
  2. 작업 관리자를 엽니다.
  3. Git for Windows' 프로세스를 찾아보십시오.
  4. 죽여버려.
  5. Git Bash를 엽니다.

이제 괜찮을 겁니다.

이 문제는 기존 프로세스를 종료하지 않고 gitbash를 종료할 때 발생합니다.기트배시에서 시작한 과정들을 죽여보세요.Gitbash 내부에서 노드 프로세스를 실행하고 있었기 때문에 노드 프로세스를 모두 죽였습니다. 죽이는 단계

  1. 작업 관리자 열기
  2. 세부 정보 탭으로 이동
  3. node.exe를 찾습니다(프로세스를 찾습니다).
  4. 모든 노드 프로세스를 제거합니다.
  5. Git Bash를 다시 엽니다.

작업 관리자를 열고 bash라는 이름으로 프로세스를 종료하면 효과가 있습니다.

더 쉽게 (이꽤 합니다) 파일을 만듭니다.fixbash.bat.

taskkill /F /IM ssh-agent.exe

문제가 발생할 때는 그냥 엽니다.cmd 및형을 합니다.fixbash.bat문제를 해결하기 위해.

또는

를 taskkill에 .cmd스크립트를 생성하지 않으려는 경우

컴퓨터를 다시 시작합니다.

(다른 답변은 제게 맞지 않았습니다.) (재설치를 시도하지 않았습니다.다시 시작하는 것이 더 빠를 수 있습니다.)

마침내 이것의 원인을 알아냈어요

만약 우리가 이와 같은 코드를 사용한다면 (비공식적으로 또는 암묵적으로), 즉..bashrc

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

그것은 새로운 과정을 낳습니다.

종료하지 않고 창만 닫으면 해당 프로세스가 계속 실행 중이므로 새 bash가 열릴 때마다 이전 bash를 폐기하지 않고 계속 새 bash를 추가합니다.

bash 창이 끝나면 간단히 누릅니다.ctrl+d 는유형을 입력합니다.exit에이전트 프로세스를 중지하고 포크가 부족해서는 안 됩니다.

내 경우 Windows에서 Gitbash를 제거해야 합니다.그래서 명령 프롬프트를 열고 아래 명령을 실행했습니다.

$ tasklist

실행 중인 모든 작업을 나열한 다음 아래 명령을 사용하여 bash.exe 작업을 종료해야 합니다.

$ taskkill /F /IM bash.exe 

독립 실행형 서버를 시킬 수 를 실행하는 모든 의, 저는 저(Selenium/WebDriver 서의버또회킬수전시를는있다는독립실행했니경자사해형습프로우같야다용이모저과음젝터실든는를행하는또▁for▁to)이 필요했습니다.taskkill내 테스트를 실행하던 특정드라이버.

따라서 다른 주장: 또는 크롬 드라이버 버전이 다를 수 있습니다.

taskkill /f /im chromedriver_2.34.exe

드라이버는 다양할 수 있습니다.IEDriverServer*.*.*.exechromedriver_*.**exe

드라이버 버전은 다음과 같이 다를 수 있습니다.chromedriver_2.34.exechromedriver_2.33.exe

문제는 자동/테스트 기반 브라우저를 닫지 않고 프로젝터가 종료된 후 더 악화되었습니다(아직 이해할 수 없는 별도의 문제로 인해).자연히 많은chromedriver작업이 계속 실행되고 있기 때문에 작업이 중단됩니다.

@mamacdon이 @Scott Newson의 최고 답변에 대한 그의 논평에서 제안한 것처럼 실제로 깃바시에서 시작된 프로세스에 문제가 있는 것 같습니다.

를 저게에 서는문 bash를 vcode로 시작하면 문제가 했습니다.code원래 bash가 실행되는 동안 이 vscode 인스턴스가 통합 Git 터미널을 시작한 경우.

원래 bash가 실행되는 동안 터미널이 시작될 때 시작되었는지 나중에 시작되었는지는 중요하지 않습니다.

통합 터미널을 열기 전에 bash를 닫았을 때는 발생하지 않았습니다.다음을 구별하지 않았습니다.exit창문을 통해 배시를 닫습니다.다른 오래된 bash 창이 아직 실행 중인 상태에서 발생하지 않았습니다.

을 그을것처에서 vcode로 이었습니다.exit또는 'Kill Terminal'('Close Panel'과 혼동하지 않도록 주의), 또는 물론 vcode 자체를 닫습니다.

이 오류가 발생하면 bash에서 시작한 내용을 기억하고 삭제합니다.다른 답들이 효과가 있었다면, 아마도 이것들은 당신의 bash에 의해 시작되거나 당신이 bash에서 시작한 프로세스에 의해 시작된 것들이고 그들은 어떻게든 당신의 원래 bash의 아이를 얻고 있었을 것입니다.

Visual Studio Code를 사용하고 있는데 ssh-agent.exe를 찾을 수 없거나 작업을 중지할 수 없는 경우 GitBash를 연 후 VSCode 열기 터미널>새 터미널로 이동하여 휴지통 아이콘(Kill Terminal)을 누릅니다.예: (1:165) 만약 당신이 여러 명이 있다면, 그들을 모두 죽이면 당신은 잘 할 것입니다.

저는 작업 관리자의 모든 git 단자를 없애려고 노력했습니다.이것은 저에게도 효과가 있습니다.행운을 빌어요.

작업 관리자를 열고 "sh" 프로세스를 검색한 후 종료합니다.행운을 빌어요

저의 경우, Git Bash에서 주피터 노트북을 실행하다가 노트북을 닫지 않고 터미널을 닫았습니다.실행 중인 Gitbash 터미널을 모두 닫고 새 터미널을 열려고 했을 때 다음과 같은 오류가 발생했습니다.

Error: Could not fork child process: There are no available terminals (-1).

해결책

taskkill /F /IM jupyter-notebook.exe

그 후 gitbash terminal에서 명령어를 실행할 수 있었습니다.

나는 태스크 매니저에서 msys2 터미널을 죽이는 것이 문제를 해결한다는 것을 발견했습니다.

Windows용 Git의 최신 버전에서 작업 관리자에서 종료하는 프로세스는 "GitExtensions.exe"였습니다.그것을 죽였고 터미널은 문제없이 다시 시작되었습니다.

작업 관리자 창에서 ssh-agent 프로세스를 찾으십시오.SSH-에이전트 프로세스를 중지하거나 종료한 후 오류가 사라집니다.

작업 관리자를 열고 bash.exe 프로세스를 찾아 종료합니다.내 경우엔 도움이 됐어요

저의 경우 비주얼 스튜디오 코드를 실행하고 닫아서 문제가 해결되었습니다.

Windows 10 이 기능은 저에게 적합했습니다.

관리자로 cmd 열기

유형:

taskkill /f /im git-bash.exe


오류가 발생한 경우:프로세스 "ssh-agent.exe"를 찾을 수 없습니다.그러면:

유형:

tasklist

"bash" 또는 "git"와 같은 단어로 모든 프로세스를 찾아 죽입니다(이것은 위험한 해결책일 수 있지만 프로세스 이름을 찾으면 다음 번에 알게 됩니다).

taskkill /f /im ***.exe

저의 경우 해결책은 Visual Studio Code를 닫는 것이었습니다. 여기서 콘솔도 눈치채지 못하고 실행했습니다.

모든 것을 정상으로 되돌린 후에.이것이 누군가에게 도움이 되기를 바랍니다.

경우에는 파일, 파일 sh.exe 파일을 .taskkill /F /IM sh.exe

많은 답변들이 새로운 Git Bash 터미널을 열기 위해 필요한 다양한 프로세스를 제안하고 있습니다.제 경우에는 여러 명의 사람들이conhost.exe다른 창을 성공적으로 열기 전에 제거해야 했던 실행 중인 프로세스.

아마도 더 중요한 것은 왜 그런 일이 일어났는지입니다.저는 제가 무엇을 해서 이런 상태에 이르게 되었는지 정확히 알고 있다고 생각합니다.타이핑할 때 알아차렸습니다.git log창 ( Bash 창 크기를 조정합니다.)q로그를 종료하지 않아 더 이상 명령을 입력할 수 없습니다.)저는 결국 창문을 닫고 다른 창문을 열었습니다.크기 조정 후 동결에 대한 해결책을 찾을 수 있는지 확인하기 위해 몇 번의 테스트를 반복했는데, 여러 번(약 10번) 수행한 결과 이 질문에 오류가 발생했습니다.테스트 결과는 다음과 같습니다.

새 Git Bash 창을 열면 다음 프로세스가 시작됩니다.

  1. 호스트를 속입니다exe
  2. 가슴이 철렁 내려앉는exe
  3. git.exe
  4. mintty.exe

제입할 이 때▁you할을 하면,git log의 추가 열려 있습니다. 4개의 프로세스는 다음과 같습니다.

  1. bash.exe
  2. 호스트를 속입니다exe
  3. git.exe
  4. less.exe(로그가 한 화면에 맞지 않을 경우에만 열려 있음)

Git Bash를 닫으면 일반적으로 8개 프로세스가 모두 사라집니다.하지만, 버그 때문에, (아마도 있을 것 같습니다.)less.exe로그를 보는 동안 창 크기를 조정하면 Git Bash가 중단됩니다.이제 창을 닫으면 8개 프로세스 중 6개 프로세스만 닫힙니다.둘다요.less.exe그리고.conhost.exe활동적으로 지내다내 경우에는, 결국 충분히conhost.exe프로세스가 구축되어 GitBash가 오류를 표시하고 시작되지 않도록 하는 문제가 무엇이든 발생했습니다.

그렇긴 하지만, 저는 그 문제를 반복하려고 했지만 20번 이상의 시도 끝에 포기했습니다. 이는 제가 문제 상태에 있을 때 죽여야 했던 것보다 더 많은 호스트 프로세스였습니다.프로세스 번호가 아니라 오류가 발생하는 하나 이상의 프로세스 상태에 대한 것으로 의심됩니다.분명히 다른 답변은 다른 프로세스를 닫는 것을 언급하기 때문에 제대로 닫히지 않는 "물건"과 깃 배쉬와 싸우는 것은 사용하는 도구에 따라 달라질 수 있습니다.

참고로 Git 버전 2.37.1.windows.1을 사용하고 있습니다.

I tried resolving the issue with the given answers but had no luck 
C:\Windows\System32>taskkill /F /IM bash.exe
ERROR: The process "bash.exe" not found.
C:\Windows\System32>taskkill /F /IM vim.exe
ERROR: The process "vim.exe" not found.

then I resolved it by killing ruby.exe process at command prompt and it worked for me
taskkill /F /IM ruby.exe

윈도우즈의 경우 태스크 관리자에서 sh.exe를 죽입니다.

제 경우 문제는 [git_install_dir]/etc/nsswitch.conf 파일이었습니다.

저는 이전에 여기에 주어진 지침을 따랐습니다. https://cygwin.com/faq.html#faq.using.startup-slow .그러나 이로 인해 "Could not fork" 오류가 대신 발생했습니다.잘못된 nsswitch.conf 파일이 다음과 같습니다.

passwd: files
group: files

그래서 저는 파일을 복원하고 문제를 해결했습니다.이제 [git_install_dir]/etc/nsswitch.conf는 다음과 같습니다.

passwd: files db
group: files # db
db_enum: cache builtin
db_home: env windows cygwin desc
db_shell: env windows # cygwin desc
db_gecos: env # cygwin desc

저에게 효과가 있는 다음 솔루션을 시도했습니다.

  1. 기존 깃을 모두 죽입니다.exe
  2. 일반 자격 증명 섹션 아래의 윈도우즈 자격 증명 관리자에서 비트 버킷에 대한 내 자격 증명을 추가했습니다.enter image description here

Git를 다시 설치했습니다. 이제 정상적으로 작동합니다.

언급URL : https://stackoverflow.com/questions/45799650/git-bash-error-could-not-fork-child-process-there-are-no-available-terminals

반응형