งานหยุดทำงานสำหรับเซสชัน c2 ของผู้ใช้


56

ข้อความต่อไปนี้ปรากฏขึ้นเกือบทุกครั้งที่ฉันปิดคอมพิวเตอร์:

A stop job is running for Session c2 of user ... (1min 30s)

มันจะรอ 1 นาที 30 วินาทีจากนั้นจึงปิดกระบวนการต่อไป ฉันทำตามคำแนะนำในการวิเคราะห์การปิดระบบ systemdและรับshutdown-log.txt (ฉันไม่สามารถวางบันทึกโดยตรงที่นี่เพราะมันยาวมาก) น่าเสียดายที่ฉันไม่เข้าใจบันทึกด้วยตัวเอง ใครช่วยให้ฉันค้นหาสิ่งที่ทำให้ระบบของฉันไม่ปิดอย่างถูกต้องหรือไม่

ผมทำงาน Arch Linux กับเคอร์เนล4.4.5-1-ARCHของฉันรุ่นsystemd229-3

นอกจากที่ 1:A stop job is running...ผมสังเกตว่าทุกครั้งที่ผมออกจากระบบแล้วปิดเครื่องคอมพิวเตอร์ของฉันจากหน้าจอเข้าระบบก็ไม่ได้รับข้อความ ฉันพยายามออกจากระบบก่อนที่จะปิดหลายครั้งดังนั้นฉันคิดว่ามันไม่ได้เกิดขึ้นโดยบังเอิญ หวังว่าข้อมูลจะช่วยได้

เพิ่มเติม 2:เป็นเซสชัน c2 เสมอที่ทำให้การปิดระบบหยุดทำงาน ดังนั้นตามที่ @ n.st แนะนำให้ฉันดูที่การวินิจฉัยปัญหาการปิดระบบอีกครั้งและเก็บไว้loginctl session-status c2แทนdmesgแต่ไม่มีอะไรเกิดshutdown-log.txtขึ้น ฉันแทนที่loginctl session-status c2ด้วยsystemd-cglsและได้รับบันทึกต่อไปนี้:

Control group /:
-.slice
└─init.scope
  ├─   1 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ...
  ├─1069 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ...
  ├─1071 /bin/sh /usr/lib/systemd/system-shutdown/debug.sh reboot
  └─1074 systemd-cgls

ความคิดใด ๆ

หมายเหตุ:หลังจากฉันอัพเดตเป็นเคอร์เนล4.6.4-1-ARCHและsystemd 230-7ข้อผิดพลาดจะไม่เกิดขึ้นอีก


น่าเสียดายที่dmesgผลลัพธ์ที่คุณวางไม่ได้ให้ข้อมูลมากนัก - มันจะแสดงการยกเลิกการเชื่อมต่อ WiFi เมื่อคุณกดปุ่มปิดเครื่อง (3048 วินาทีหลังจากบูตระบบ) และไม่มีอะไรเกิดขึ้นจนกว่าตัวจับเวลา 1m30 จะหมดอายุและระบบยังคงปิดตัวลง
n.st

1
ในการตรวจสอบสิ่งที่ทำงานในที่ c2 loginctl session-status c2เซสชั่นเป็นลางไม่ดีที่ไม่ได้ยุติในตัวเองใช้ ฉันไม่แน่ใจว่าคุณยังสามารถสลับไปใช้ getty ระหว่างการปิดเครื่องได้หรือไม่ลองกด Ctrl + Alt + F2 เมื่อ "หยุดงานกำลังทำงานอยู่ ... " จะปรากฏขึ้น หากใช้งานได้คุณจะได้รับข้อความแจ้งให้ลงชื่อเข้าใช้และจะสามารถใช้loginctlคำสั่งได้ หากคุณไม่ได้รับพรอมต์เข้าสู่ระบบให้ทำตามขั้นตอนเดียวกับที่คุณใช้dmesgแต่เก็บเอาท์พุทloginctl session-status c2แทน (นั่นคือทั้งหมดสมมติว่ามันเป็น "c2" ที่แขวนอยู่ไม่ใช่เซสชันอื่นในแต่ละครั้ง)
n.st

1
คุณอาจได้รับการแก้ไข (ชั่วคราว) โดยแฮ็คนี้: สร้าง/etc/sysctl.d/50-coredump.confโดยมีเนื้อหา: kernel.core_pattern=core, อ้างอิง: github.com/systemd/systemd/issues/1615#issuecomment-203507283
Runium

1
github.com/systemd/systemd/issues/2691สิ่งนี้อาจเกี่ยวข้อง
Natecat

2
@aurelien มัน c2 เสมอที่ทำให้ตัวจับเวลาหยุดทำงานหรือไม่? ถ้าเป็นเช่นนั้นคุณอาจจะทำตามการวินิจฉัยปัญหาการปิดระบบอีกครั้งและจัดเก็บแทนloginctl session-status c2 dmesg
n.st

คำตอบ:


45

วิธีแก้ปัญหาสำหรับปัญหานี้คือการลดการหมดเวลา/etc/systemd/system.confลงจาก 90 วินาทีเป็น 10 วินาทีตัวอย่างเช่น

DefaultTimeoutStopSec=10s

และเรียกใช้คำสั่งต่อไปนี้ใน terminal หลังจากทำการเปลี่ยนแปลง

$ systemctl daemon-reload

9
สิ่งนี้ไม่ได้อธิบายหรือแก้ไขปัญหาการรอ 10 วินาทีและไม่มีการปิดระบบที่ไม่ดีเลย
jcora

ฉันมีงานที่ต้องหยุดมากกว่า 10 วินาทีหรือไม่?
Jared Chu

10

ปัญหานี้อาจมีสาเหตุได้หลายประการดังนั้นคำตอบที่เฉพาะเจาะจงจึงใช้งานไม่ได้ ลองใช้วิธีนี้ในการแก้ปัญหา:

  1. รอข้อความ "งานหยุดทำงานเพื่อให้เซสชัน c2 ... " ปรากฏขึ้นเมื่อปิดเครื่องและรีบูตหลังจากปิดเครื่องเสร็จสมบูรณ์
  2. รันjournalctl -p5ในเทอร์มินัลแล้วกดENDเพื่อไปยังจุดสิ้นสุดของ systemd journal ( -p5กรองขยะจำนวนมาก)
  3. เริ่มการค้นหาโดยกด/และป้อนคำค้นหาtimed out. Killing.
  4. ค้นหาย้อนกลับโดยกดSHIFT+Nซ้ำ ๆ
  5. บรรทัดด้านล่างของแต่ละการแข่งขันบอกคุณว่าแอปพลิเคชันใดทำงานผิดKilling process 1234 (jack_thru) with signal SIGKILL.

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

โชคดี! :)


1
ขอบคุณสำหรับคำตอบที่ถูกต้องนี้ ฉันใช้มันเพื่อค้นหาว่าในกรณีของฉันการแจ้งเตือน Fedora 30 "lpf" เป็นสาเหตุและใน lpf-gui ไม่ได้เลือกการแจ้งเตือน | เปิดใช้งานการแจ้งเตือน
vk5tu

5

ฉันมีปัญหาเดียวกันการค้นหาฉันพบโพสต์ในฟอรัม reddit ของ Arch Linux

นี่คือวิธีแก้ปัญหาที่เหมาะกับฉัน https://www.reddit.com/r/archlinux/comments/4bawf7/a_stop_job_is_running_for_session_c2_of_user/d17th3u

ติดตั้งสุนัขเฝ้าบ้าน

# pacman -S watchdog

จากนั้นเริ่มบริการเมื่อบู๊ต:

# systemctl enable watchdog.service

เริ่มบริการเพื่อไม่เห็นข้อความอีกต่อไป

# systemctl start watchdog.service

ฉันสร้างส่วนสำคัญสำหรับhttps://gist.github.com/dianjuar/98d02af4050dc2df8ae6f18695d44ca3นี้


ฉันทำตามคำแนะนำของคุณแล้ว แต่ไม่ได้แก้ปัญหา ขอบคุณ
macnguyen

2
มีความหมายอื่นใดสำหรับการแก้ไขนี้หรือไม่? เห็นได้ชัดว่า watchdogฮาร์ดแวร์จะรีเซ็ตระบบหากมันล่าช้าหรือล้มเหลวในการทดสอบอื่น ๆ ดังนั้นเมื่อหมดเวลาในคำถาม Watchdog จะรีเซ็ตคอมพิวเตอร์ ฉันสงสัยว่าระบบจะปิดเครื่องได้อย่างสะอาดยิ่งขึ้นหรือไม่ถ้าเราลดการหมดเวลาตามคำตอบอื่น ฉันยังสงสัยว่าwatchdogจะบังคับให้รีเซ็ตในสถานการณ์อื่นที่ไม่ต้องการหรือไม่
Sparhawk

ฉันอ่านหน้าคนของคุณ ฉันคิดว่า watchdog ป้องกันการรีเซ็ตบอกเคอร์เนล linux ว่าทุกอย่างเรียบร้อย
Diego Juliao

> มันเปิด / dev / watchdog และเขียนต่อไปเรื่อย ๆ พอที่จะป้องกันไม่ให้เคอร์เนลรีเซ็ตอย่างน้อยหนึ่งครั้งต่อนาที
Diego Juliao

ไม่มีแพคเกจชื่อจ้องจับผิดใน OpenSuSE ดังนั้นนี้ไม่ได้จริงๆช่วยฉัน :(
เดวิด Faure

4

ฉันพบวิธีแก้ปัญหาที่นี่ซึ่งใช้ได้กับฉันกับ Debian 9 บน vbox ฉันได้รับความล่าช้า 120 วินาทีทั่วไปเมื่อปิดหรือรีสตาร์ท

https://forums.kali.org/showthread.php?32498-Delay-90-seconds-on-shutdown

ทำเช่นเดียวกับที่ไอรอนแมนพูดว่า:

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

ฉันใช้ "sudo shutdown now" และความล่าช้าในการรีสตาร์ทก็หายไป ดูเหมือนจะง่ายเกินไป แต่ก็ใช้งานได้สำหรับฉัน (และอื่น ๆ )

HTH


8
ทำไมคำตอบนี้มี upvotes มากมาย มันไม่ได้ผลสำหรับฉันและมันก็ไม่ให้เหตุผลว่าทำไมมันถึงใช้ได้
Rodrigo

ใช้งานได้สำหรับฉัน แต่ก็ยังไม่ชัดเจนว่าทำไม
pstryk

3

ต้องมีปัญหาที่คล้ายกันใน Kali [2017.01] โดยมีความล่าช้าในการออกจากระบบอื่นที่แสดงโดย:

"งานหยุดทำงานสำหรับเซสชัน c1 ของผู้ใช้ Debian-gdm"

"งานหยุดทำงานสำหรับตัวจัดการผู้ใช้สำหรับ UID 132"

ฉันจัดการเพื่อกำจัดข้อผิดพลาดหนึ่งโดยหยุดแรกNetworkManagerก่อนปิดหรือปิดการใช้งานด้วย:

# To get rid of: "A stop job is running for User manager for UID 132"
systemctl disable NetworkManager 
systemctl stop NetworkManager 

นี่อาจจะได้รับการแก้ไขหรือใส่ในทางอื่นเมื่อรีบูตเครื่อง

สำหรับความล่าช้าอื่น ๆ ฉันไม่ประสบความสำเร็จ มันดูเหมือนว่ามันอาจจะเกี่ยวข้องกับ GDM ( ผู้จัดการฝ่ายการแสดงผล Gnome ) หรือpulseaudio dbusดังนั้นเนื่องจากฉันไม่สามารถแยกปัญหาได้วิธีเดียวคือตั้งค่าDefaultTimeout*Sec=5sรายการsystem.confตามที่กล่าวไว้แล้วในโพสต์อื่น

ปัญหาอื่น ๆ ที่อาจมีการตรวจสอบจะแสดงใน:

# systemctl --state=masked --state=not-found --state=failed

  UNIT                           LOAD      ACTIVE   SUB  DESCRIPTION                   
 tmp.mount                      not-found inactive dead tmp.mount                     
 auditd.service                 not-found inactive dead auditd.service                
 console-screen.service         not-found inactive dead console-screen.service        
 festival.service               not-found inactive dead festival.service              
 kbd.service                    not-found inactive dead kbd.service                   
 live-tools.service             masked    inactive dead live-tools.service            
 plymouth-quit-wait.service     not-found inactive dead plymouth-quit-wait.service    
 plymouth-quit.service          not-found inactive dead plymouth-quit.service         
 plymouth-start.service         not-found inactive dead plymouth-start.service        
 systemd-sysusers.service       not-found inactive dead systemd-sysusers.service      
 systemd-update-done.service    not-found inactive dead systemd-update-done.service   
 systemd-vconsole-setup.service not-found inactive dead systemd-vconsole-setup.service
 syslog.target                  not-found inactive dead syslog.target                 

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

และ:

# systemd-cgls -u user-132.slice

Unit user-132.slice (/user.slice/user-132.slice):
├─user@132.service
 ├─pulseaudio.service
  └─739 /usr/bin/pulseaudio --daemonize=no
 ├─at-spi-dbus-bus.service
  ├─704 /usr/lib/at-spi2-core/at-spi-bus-launcher
  ├─709 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
  └─712 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
 ├─dbus.service
  └─694 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
 └─init.scope
   ├─597 /lib/systemd/systemd --user
   └─600 (sd-pam)
└─session-c1.scope
  ├─577 gdm-session-worker [pam/gdm-launch-environment]
  ├─613 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
  ├─618 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/132/gdm/Xauthority -background none -noreset -keeptty -verbose 3
  ├─697 /usr/lib/gnome-session/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
  ├─721 /usr/bin/gnome-shell
  └─752 /usr/lib/gnome-settings-daemon/gnome-settings-daemon

2
คำตอบนี้อย่างน้อยให้ข้อมูลบางอย่างแก่เราเกี่ยวกับวิธีค้นหาสิ่งที่ (จากความเป็นไปได้มากมาย) ที่อาจทำให้เกิดปัญหากับเครื่องแต่ละเครื่องของเรา อีกปัญหาหนึ่งคือหลังจากpoweroffหรือshutdownเราไม่สามารถเข้าสู่ระบบเพื่อดูผู้กระทำผิดที่แท้จริง systemd ต้องการบันทึกผลลัพธ์จาก cgls เมื่อปัญหานี้เกิดขึ้น สิ่งที่ดีที่สุดที่เราสามารถทำได้ในตอนนี้คือบันทึกผลลัพธ์จากsystemd-cglsและปรึกษาในภายหลังหาก / เมื่อการแฮงค์เกิดขึ้นอีกครั้ง
duanev

2

เนื่องจากนี่เป็นผลลัพธ์แรกในเครื่องมือค้นหาที่เป็นมิตรที่สุดฉันจะเพิ่มโซลูชันของฉันที่นี่: ฉันใช้ Arch Linux กับเดสก์ท็อป Gnome; เคอร์เนลปัจจุบัน ณ วันนี้: 4.16

ฉันได้รับข้อความA stop job is running for Session c2 of user ... (1min 30s)ทุกRemote Loginครั้งที่เปิดใช้งานSettings > SharingและSharingถูกเปิดใช้งาน

เมื่อใดก็ตามที่ฉันปิดการใช้งานคอมพิวเตอร์ของฉันจะปิดลงอย่างดีโดยใช้ปุ่มปิด Gnome

เนื่องจาก "การเข้าสู่ระบบระยะไกล" ไม่ใช่สิ่งอื่นใดนอกจาก SSH ฉันคิดว่าคำตอบของ not2qubit จะใช้งานได้เช่นกันเนื่องจากการปิดใช้งาน NetworkManager อาจปิดการใช้งาน SSH เช่นกัน


1

บางครั้งสิ่งนี้อาจเกิดจากแอปเดียว การจดจำการเปลี่ยนแปลงที่เกิดขึ้นก่อนที่สิ่งนี้จะเกิดขึ้นจะเป็นประโยชน์ในการระบุสาเหตุ ฉันมีปัญหาเดียวกันหลังจากติดตั้งskypeforlinux-stable-binบน Arch Linux การปิดแอพนั้นก่อนที่จะปิดตัวลงแก้ปัญหาได้ (ฉันเขียนสคริปต์เพื่อทำสิ่งนี้โดยอัตโนมัติก่อนที่จะปิดตัวลง)


0

ฉันมีปัญหานี้มาเป็นเวลานานดังนั้นฉันคิดว่าฉันจะแบ่งปันวิธีแก้ปัญหาของฉัน

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

  1. ไปที่การตั้งค่าของ Google Chrome
  2. คลิกที่ "ขั้นสูง"
  3. ไปที่ "ระบบ"
  4. ปิดใช้งาน "เรียกใช้แอปพื้นหลังต่อไปเมื่อปิด Google Chrome"

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

วิธีนี้แก้ไขได้สำหรับฉัน หวังว่ามันจะช่วย

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