Git bash ข้อผิดพลาด: ไม่สามารถแยกกระบวนการย่อย: ไม่มีเทอร์มินัลที่ใช้ได้ (-1)


191

ฉันมีเทอร์มินัลทุบตี git มากถึง 8 ตัวในเวลาเดียวกันก่อนหน้านี้

ปัจจุบันฉันมีเพียง 2 ขึ้น

ฉันไม่เคยเห็นข้อผิดพลาดนี้มาก่อนและฉันไม่เข้าใจว่าอะไรเป็นสาเหตุ

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!

รูปภาพที่แนบมา:

ป้อนคำอธิบายรูปภาพที่นี่


10
ฆ่ากระบวนการทุบตีทำงานให้ฉัน
bfranzen

36
-1 ถึงคำตอบปัจจุบันทั้งหมด รูปแบบทั้งหมดของ "just kill terminal และเริ่มอีกครั้ง" ปัญหาพื้นฐานคืออะไร? ทำไมฉันถึงไม่มีขั้ว 100 เครื่อง?
RJFalconer

32
ผมเคยมีปัญหานี้สำหรับดังกล่าวเป็นเวลานานและไม่เคยได้รับที่ด้านล่างของมัน ดูเหมือนว่าจะเป็นแอปพลิเคชันที่เปิดทิ้งไว้ซึ่งอาจทำให้บางคนจับยังคงเปิด แต่ในกรณีของฉันกระบวนการทุบตีถูกปิดและไม่มีกระบวนการ ssh รอบ (ฉันใช้mosh) ฉันเพิ่งสามารถทำซ้ำปัญหาด้วยการเปิดตัว vscode โดยใช้vscode .แล้วปิดเทอร์มินัลที่ใช้เพื่อเปิด ในขณะที่หน้าต่าง vscode เปิดอยู่ดูเหมือนว่า Cygwin จะไม่ต้องการเปิดเทอร์มินัลเพิ่มขึ้นทันทีที่ฉันปิดมันก็ใช้งานได้
Elven Spellmaker

25
@ElvenSpellmaker คุณพูดถูกมันเกี่ยวข้องกับcode .กรณีของฉันเช่นกัน
Bilal Khoukhi

15
เพียงเพื่อประโยชน์ในการยืนยัน: พบปัญหาในวันนี้ก็เป็นเพราะcode .ในกรณีของฉัน การปิดรหัส VS จะช่วยแก้ปัญหานี้ ค้นหา @ElvenSpellmaker ยอดเยี่ยม
kb

คำตอบ:


83

พบปัญหาและแนวทางแก้ไขที่คล้ายกันในกลุ่ม Google

ฉันเปิดพรอมต์คำสั่ง windows และเรียกใช้คำสั่ง

$ tasklist

ดูเหมือนว่าการเชื่อมต่อ ssh ที่ฉันทำในเปลือกทุบตี git ของฉันไม่ได้ถูกปิดเมื่อหน้าต่างเหล่านั้นถูกปิดและแขวนห้อยหน้าต่างเปลือกหอย git ที่มีอยู่

นี่อาจเป็นทางออกที่อันตราย แต่จากพรอมต์คำสั่ง windows ที่ฉันใช้งาน

$ taskkill /F /IM ssh.exe 

ทุกอย่างดูเหมือนจะทำงานอีกครั้งหลังจากนี้ อาจไม่ได้เป็นปัญหาของกระบวนการของเด็กกำพร้าโดยตรง แต่สิ่งนี้ใช้ได้ผลอย่างน้อยสำหรับฉัน

หมายเหตุเพิ่มเติม: คุณสามารถฆ่ากระบวนการอื่น ๆ เช่น:

$ taskkill /F /IM vim.exe

6
ขั้นตอนนี้ใช้ได้แม้ว่าในกรณีของฉันผู้ร้ายคือnode.exe(Node.js) และlink.exe(ลิงก์ GNU) ดังนั้นคุณอาจต้องค้นหารายการงานสำหรับกระบวนการที่มีความผิด ฉันไม่แน่ใจว่าทำไม แต่ดูเหมือนว่าโปรแกรมที่เปิดตัวจากในเซสชัน Bash อาจทำให้เชลล์พาเรนต์ของพวกเขาอยู่ได้
mamacdon

1
ขอบคุณ scott ขั้นตอนนี้ทำงานโดย @mamacdon ที่กล่าวถึงแม้ในกรณีของฉันผู้ร้ายคือ node.exe
S52

21
สำหรับฉันฉันต้องแสดง "taskkill / F / IM ssh-agent.exe" แต่ใกล้พอสำหรับการโหวต
Dylan Kapp

12
ฉันต้องฆ่า node.exe ด้วยคำสั่งtaskkill /F /IM node.exe
Tarator

1
ในกรณีของฉัน (กับ Cygwin) มันเป็น adb.exe เดียวที่ยังคงทำงานอยู่ ฆ่ามันแก้ไข
Diego Andrade

58

ฉันเห็นปัญหาบน windows ใน gash bash เมื่อฉันฆ่า gash bash console โดยไม่ต้องใช้ exit ฉันพบการฆ่าภารกิจ ssh-agent.exe จากตัวจัดการงานของ windows เพื่อแก้ไขปัญหา


4
สิ่งนี้ใช้ได้ผลตั้งแต่แรก ตอนนี้ฉันยังได้รับมันแม้หลังจากที่ฆ่า ssh-agent.exe
Leo

1
นี่เป็นทางออกระยะสั้น ปัญหาจะกลับมาในที่สุด หวังว่าจะมีวิธีแก้ไขปัญหานี้อย่างถาวรมากขึ้น
Sonic Soul

1
ฉันก็พบว่าบางครั้งโหนดก็ยังคงทำงานเช่นกันเพียงแค่ฆ่าที่ดูเหมือนจะแก้ปัญหาสำหรับฉัน
MusicDev

หลังจากที่ฆ่ากระบวนการ "sh.exe" ปัญหาได้รับการแก้ไข ขอบคุณทุกคน
maris

การฆ่า "winpty-agent.exe" ได้ผลสำหรับฉันแล้ว
demstair

48

ในกรณีของฉันมันเกี่ยวข้องกับการใช้รหัส VS ก่อนหน้านี้ฉันได้เปิดรหัส VS โดยใช้เทอร์มินัล git bash และดำเนินการ

code .

จากนั้นปิดเครื่อง

ปัญหาได้รับการแก้ไขโดยปิดหน้าต่างรหัส VS ทั้งหมดที่เปิด

เมื่อคุณมีตัวแก้ไขหรือ IDE กำหนดค่าให้เปิดเทอร์มินัลเป็น git bash จากนั้นเมื่อ IDE / IDE ทำงานอยู่การทุบตี git จะทำให้ bash หมุนขึ้นจาก "C: \ Windows \ System32 \ bash.exe" และความพยายามอื่น ๆ ทุบตีเปิดจากหน้าต่างที่แยกต่างหากมีแนวโน้มที่จะผิดพลาด

ทางออกที่ดีที่สุดคือการฆ่า bash IDE / Editor และเปิดจากหน้าต่างใหม่หรือดำเนินการต่อจากคำสั่ง IDE / Editor


4
ขอบคุณมันเป็นปัญหาเดียวกันกับฉัน
Tarun Nagpal

1
ทำงานเหมือนจับใจ! ขอบคุณ!
jrend

1
มีปัญหาเดียวกัน ควรเปิด vs code เป็น cmd
ริชาร์ด

ปัญหาเดียวกันทุกประการ ขอบคุณ
ลูเชียนลู

ปัญหาเดียวกันแน่นอน ขอบคุณมาก
ลึก

33

ฉันแก้ไขสิ่งนี้ด้วยวิธีแก้ปัญหา:

  1. ปิดหน้าต่าง Git Bash
  2. เปิดตัวจัดการงาน
  3. ค้นหากระบวนการ 'Git for Windows'
  4. ฆ่ามัน
  5. เปิด Git Bash

มันควรจะโอเคแล้ว


3
ทางออกที่ง่ายที่สุด ตรงไปตรงมา
JkAlombro

2
ในกรณีของฉันฉันมี bash.exe ทำงานอยู่และเพิ่งจะฆ่ามัน
Gilberto Albino

8

เพื่อทำให้ชีวิตง่ายขึ้น (ปัญหานี้เกิดขึ้นค่อนข้างบ่อย) สร้างไฟล์ที่เรียกว่าfixbash.batในโฮมไดเร็กตอรี่แล้ววางไฟล์นี้:

taskkill /F /IM ssh-agent.exe

เมื่อปัญหาเกิดขึ้นเพียงแค่เปิดcmdและพิมพ์fixbash.batเพื่อแก้ไขปัญหา

หรือ

เพียงวางคำสั่ง taskkill ลงในของคุณcmdหากคุณไม่ต้องการสร้างสคริปต์


2
ผลตอบแทน:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee

วิธีนี้ใช้ได้ผลสำหรับฉัน อย่างไรก็ตามคุณต้องไปที่ตัวจัดการงานและทำลาย ssh-agent.exe ทั้งหมดเนื่องจากมีได้มากมาย
Java Main

6

รีสตาร์ทเครื่องของคุณ

(คำตอบอื่น ๆ ใช้ไม่ได้สำหรับฉัน (ฉันไม่ได้ลองติดตั้งใหม่การเริ่มต้นใหม่อาจเร็วกว่า))


3
และหากยังไม่ได้ผลให้ติดตั้งเครื่องของคุณใหม่หรือซื้อเครื่องใหม่
john16384

6

สำหรับฉัน (หรือใครก็ตามที่ใช้ไม้โปรแทรกเตอร์ซึ่งอาจหมุนเซิร์ฟเวอร์ Selenium / WebDriver แบบสแตนด์อโลน) ฉันต้องtaskkillใช้เว็บเบราเซอร์เฉพาะที่กำลังทำการทดสอบของฉัน

ดังนั้นข้อโต้แย้งที่แตกต่าง: หรือรุ่น Chromedriver ของคุณอาจแตกต่างกันไป

taskkill /f /im chromedriver_2.34.exe

โปรดทราบว่าไดรเวอร์ของคุณอาจแตกต่างกัน: IEDriverServer*.*.*.exevschromedriver_*.**exe

ไดรเวอร์ของคุณอาจรุ่นอาจแตกต่างกัน: chromedriver_2.34.exevschromedriver_2.33.exe

ปัญหานี้แย่ลงหลังจากที่ไม้โปรแทรกเตอร์ออกโดยไม่ต้องปิดเบราว์เซอร์อัตโนมัติ / ทดสอบที่ขับเคลื่อนด้วย (เนื่องจากปัญหาแยกต่างหากที่ฉันยังไม่เข้าใจ) โดยธรรมชาติchromedriverงานจำนวนมากยังคงทำงานอยู่นั่นคือสาเหตุที่ฆ่าพวกเขา


3
ใช่นี่เป็นปัญหาของฉัน ฉันมีสคริปต์อำนวยความสะดวกที่ใช้ซีลีเนียมเพื่อดึงข้อมูลบางอย่างจากเว็บไซต์บางแห่งที่ไม่สามารถใช้ curl และ wget เนื่องจากต้องดำเนินการกับ JavaScript อย่างไรก็ตามฉันมักจะวิ่งครั้งนี้ในตอนเช้าและบางครั้งมันก็วางสาย ฉันไม่เคยทำความสัมพันธ์กับข้อผิดพลาด cygwin นี้จนกว่าฉันจะเห็นโพสต์นี้ขอบคุณมาก! ฉันจะอัปเดตสคริปต์ที่เรียกซีลีเนียมเพื่อฆ่ากระบวนการ chromedriver.exe ก่อนที่จะออก
beaudet

6

เปิดตัวจัดการงานและฆ่ากระบวนการด้วยชื่อทุบตีสิ่งนี้ได้ผล


6

สิ่งนี้จะเกิดขึ้นเมื่อคุณออกจาก git bash โดยไม่ยกเลิกกระบวนการที่มีอยู่ เพียงลองและฆ่ากระบวนการเหล่านั้นที่คุณเริ่มจากการทุบตี git ฉันกำลังเรียกใช้กระบวนการโหนดภายใน gash bash ดังนั้นฉันจึงฆ่ากระบวนการโหนดทั้งหมดเพื่อฆ่า

  1. เปิดตัวจัดการงาน
  2. ไปที่แท็บรายละเอียด
  3. ค้นหา node.exe (คุณค้นหากระบวนการของคุณ)
  4. ฆ่าทุกกระบวนการโหนด
  5. เปิด Git Bash อีกครั้ง

2
adb shellในกรณีของฉันมันเป็น ดังนั้นฉันจึงวิ่งไปadb kill-serverในหน้าต่างที่เปิดอยู่แล้วและแก้ไขให้ฉัน +1
lucidbrot

ทำงาน แต่สิ่งที่นรก ... ฉันไม่ได้ทำ node.js ในเดือน .... ทำไมมันทำงาน?
JMI MADISON

5

ในที่สุดก็คิดออกว่าอะไรเป็นสาเหตุของเรื่องนี้

หากเราใช้รหัสเช่นนี้ (โดยชัดแจ้งหรือโดยนัย) เช่นใน.bashrcไฟล์

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

มันวางไข่เป็นกระบวนการใหม่

หากคุณไม่ออกจากระบบและเพียงปิดหน้าต่างกระบวนการนั้นก็ยังทำงานอยู่ ดังนั้นการทุบตีใหม่แต่ละครั้งจะเปิดขึ้นเรื่อย ๆ เพื่อเพิ่มใหม่โดยไม่ต้องทิ้งสิ่งเก่า

เมื่อเสร็จสิ้นด้วยหน้าต่างทุบตีเพียงกดctrl+dหรือพิมพ์exitเพื่อฆ่ากระบวนการตัวแทนและคุณไม่ควรเรียกใช้หมด


3

ดูเหมือนว่าจะมีปัญหากับกระบวนการที่เปิดตัวจากการทุบตี git แน่นอนเช่น @amacdon ที่แนะนำไว้ในความคิดเห็นของเขาในคำตอบยอดนิยมโดย @Scott Newson

สำหรับฉันปัญหาปรากฏขึ้นถ้าฉันเปิดตัว vscode จาก bash ด้วยcodeและถ้าอินสแตนซ์ของ vscode นี้เปิดตัวเทอร์มินัล git รวมในขณะที่ bash ดั้งเดิมยังคงทำงานอยู่

ไม่สำคัญว่าเทอร์มินัลนั้นจะเปิดตัวเมื่อเริ่มต้นหรือหลังจากนั้นตราบใดที่มันยังอยู่ในขณะที่ทุบตีดั้งเดิมยังคงทำงานอยู่

ไม่ได้เกิดขึ้นเมื่อ bash ถูกปิดก่อนที่เทอร์มินัลรวมจะเปิดขึ้น ไม่แยกความแตกต่างระหว่างexitและปิด bash ผ่าน windows ไม่ได้เกิดขึ้นกับหน้าต่างทุบตีที่เก่ากว่ายังคงทำงานอยู่

วิธีที่จะจัดการกับมันก็คือการปิดเทอร์มินัลใน vscode ด้วยexitหรือ 'Kill Terminal' (ระวังอย่าให้มิกซ์กับ 'ปิดบานหน้าต่าง') หรือปิด vscode ด้วยตัวเอง

หากคุณได้รับข้อผิดพลาดนี้ให้พยายามจำสิ่งที่คุณเปิดตัวจากการทุบตีและฆ่ามัน หากคำตอบอื่น ๆ ที่ได้ผลสำหรับคุณอาจเป็นได้ว่าสิ่งเหล่านี้เป็นสิ่งที่เปิดตัวโดยการทุบตีของคุณหรือเปิดตัวโดยกระบวนการที่คุณเปิดตัวจากการทุบตีและพวกเขาก็ได้รับลูกของทุบตีดั้งเดิม


3

หากคุณกำลังใช้ Visual Studio Code และคุณไม่พบ ssh-agent.exe หรือไม่สามารถ taskkill ได้และหลังจากเปิด Git Bash คุณได้รับข้อผิดพลาดนั้นเพียงไปที่ VSCode open Terminal> New Terminal แล้วกดที่ไอคอนถังขยะ the (Kill Terminal) เช่น (1: ทุบตี) ถ้าคุณมีหลายตัวจงฆ่าพวกมันทั้งหมดและคุณควรจะดี


3

ในกรณีของฉันฉันต้องฆ่าทุบตี Git ใน Windows ดังนั้นให้เปิด Command Prompt และรันคำสั่งด้านล่าง

$ tasklist

มันจะลงรายการงานที่ทำงานอยู่ทั้งหมดจากนั้นจะต้องฆ่างาน bash.exe โดยใช้คำสั่งด้านล่าง

$ taskkill /F /IM bash.exe 


2

ในกรณีของฉันวิธีแก้ไขคือการปิด Visual Studio Code - ทุกที่ที่ฉันมีคอนโซลใช้งานโดยไม่สังเกตเห็น -

หลังจากปิดมันทั้งหมดกลับสู่ปกติ หวังว่านี่จะช่วยใครซักคน


1

ฉันพยายามฆ่าเทอร์มินัล git ทั้งหมดในตัวจัดการงานแก้ปัญหา มันก็ใช้ได้กับฉันเช่นกัน โชคดี.


1

ในเวอร์ชันล่าสุดของ git สำหรับ windows กระบวนการฆ่าในตัวจัดการงานคือ "GitExtensions.exe" ฆ่ามันและเครื่องก็เริ่มใหม่โดยไม่มีปัญหา


1

กรุณาค้นหากระบวนการ ssh-agent ในหน้าต่างตัวจัดการงาน หลังจากคุณหยุดหรือฆ่ากระบวนการ ssh-agent ข้อผิดพลาดจะหายไป


1

ในกรณีของฉันฉันมีรหัส Visual Studio ทำงานและปิดมันแก้ไขปัญหา


1
ไม่แน่ใจว่าทำไมสิ่งนี้ถึงได้รับการโหวตลดลงได้ผลสำหรับฉัน นอกจากนี้รหัส visual studio สามารถสร้างเทอร์มินัลได้ดังนั้นจึงไม่น่าแปลกใจที่มันจะส่งผลกระทบต่อปัญหานี้
Jesse Reza Khorasanee



0

เปิดตัวจัดการงานค้นหากระบวนการ bash.exe และฆ่า ช่วยในกรณีของฉัน


0

Windows 10 ใช้ได้กับฉัน:

1) เปิด cmd ในฐานะผู้ดูแลระบบ

2) ประเภท:

taskkill /f /im git-bash.exe


3) หากมีข้อผิดพลาด: ไม่พบกระบวนการ "ssh-agent.exe" แล้ว:

พิมพ์:

tasklist

4) ค้นหาและฆ่าทุกกระบวนการด้วยคำเช่น "bash" หรือ "git" (นี่อาจเป็นทางออกที่อันตราย แต่เมื่อคุณจะพบชื่อกระบวนการแล้วในครั้งต่อไปคุณจะรู้)

taskkill /f /im ***.exe


0

ในกรณีของฉันฉันมี abd.exe หลงทางที่ยังคงเปิดอยู่ในตัวจัดการงาน ฆ่ามันแก้ไขปัญหา



-1

เพียงแค่รีสตาร์ทเครื่องของคุณในขณะที่เริ่มต้นเครื่องของเราปัญหานี้แก้ไขได้ลอง


4
"หากวิธีนี้ใช้ไม่ได้ผลให้ตัดไฟไปที่อาคารของคุณแล้วเสียบกลับเข้าไปถ้าไม่ได้ผลให้ลองโทรหา บริษัท ผลิตไฟฟ้าในท้องถิ่น ไม่กี่นาที ... ฯลฯ "
refaelio

1
lol ฉันทำแบบเดียวกันวิธีแก้ปัญหาฟังดูงี่เง่า แต่ก็ใช้ได้ดี :)
zeroDivider
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.