Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

3
ข้อความเมื่อปิดระบบ: สุนัขเฝ้าบ้านไม่ได้หยุด!
เมื่อปิดเครื่องฉันมักจะได้รับข้อความ watchdog did not stop! และแล็ปท็อปค้างหลังจากสายอื่น ๆ ไม่กี่โดยไม่ต้องปิดเครื่อง ความคิดเกี่ยวกับวิธีการแก้ไขปัญหานี้? เมื่อเร็ว ๆ นี้มันเกิดขึ้นบ่อยครั้งมากเมื่อเปิดแล็ปท็อปมาระยะหนึ่ง ฉันใช้ Debian 8 ใน Asus UX32LA ฉันพบไฟล์ systemd นี้ (มันแสดงความขัดแย้งกับ shutdown.target) ถ้ามันอาจช่วยได้ ความประทับใจของฉันคือว่าปัญหาขึ้นอยู่กับปัญหาบางอย่างที่มาจากฉันพยายามที่จะแก้ไขแสงไฟ (ซึ่งจริง ๆ แล้วใช้ได้เฉพาะกับพารามิเตอร์ด้วง "acpi_osi =") [Unit] Description=Load/Save Screen Backlight Brightness of %i Documentation=man:systemd-backlight@.service(8) DefaultDependencies=no RequiresMountsFor=/var/lib/systemd/backlight Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service Before=sysinit.target shutdown.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/lib/systemd/systemd-backlight …

2
tmux force ปรับขนาดหน้าต่าง
ฉันมักจะเชื่อมต่อกับเซิร์ฟเวอร์ linux ระยะไกลจาก windows server เฉพาะ (W1) ที่ด้านหน้าต่างฉันใช้สีโป๊วและด้านลินุกซ์ฉันเริ่ม tmux บางครั้งฉันต้องใช้เซิร์ฟเวอร์ windows ที่แตกต่างกัน (W2) และเชื่อมต่อกับเซสชั่น tmux เดียวกัน ปัญหา: ถ้าฉันได้ตั้งขนาดสำหรับหน้าต่างโป๊วบน W1 ดังนั้นฉันจะต้องไม่เกินขนาดนี้ใน W2 เมื่อฉันขยายหน้าต่างที่มีขนาดใหญ่ที่สุดพื้นที่พิเศษไม่สามารถใช้งานได้เต็มไปด้วยอักขระ ~ มีวิธีการ "บังคับ" ปรับขนาดใน W2 แม้ว่านั่นหมายความว่า W1 จะแสดงเฉพาะบางส่วนเอาท์พุท? หรือวิธีทำให้ W1 ถูกตัดการเชื่อมต่อจากเซสชัน tmux หรือไม่?
19 tmux 

4
bash: วิธีการเผยแพร่ข้อผิดพลาดในการทดแทนกระบวนการ?
ฉันต้องการเชลล์สคริปต์ของฉันล้มเหลวเมื่อใดก็ตามที่คำสั่งดำเนินการกับพวกเขาล้มเหลว โดยทั่วไปแล้วฉันจะทำกับ: set -e set -o pipefail (ฉันมักจะเพิ่มset -uด้วย) สิ่งนี้คือไม่มีสิ่งใดในข้างต้นที่ใช้ได้กับการทดแทนกระบวนการ รหัสนี้พิมพ์ว่า "ok" และออกโดยมีรหัสส่งคืน = 0 ในขณะที่ฉันต้องการมันล้มเหลว: #!/bin/bash -e set -o pipefail cat <(false) <(echo ok) มีอะไรที่เทียบเท่ากับ "pipefail" แต่สำหรับการทดแทนกระบวนการ? วิธีอื่นใดในการส่งผ่านคำสั่งเอาต์พุตของคำสั่งเหมือนกับเป็นไฟล์ แต่การเพิ่มข้อผิดพลาดเมื่อใดก็ตามที่โปรแกรมเหล่านั้นล้มเหลว? วิธีแก้ไขปัญหาของคนจนจะตรวจพบว่าคำสั่งเหล่านั้นเขียนไปยัง stderr (แต่บางคำสั่งเขียนไปยัง stderr ในสถานการณ์ที่ประสบความสำเร็จ) อีกโซลูชันที่สอดคล้องกับ posix จะใช้ชื่อ pipes แต่ฉันจำเป็นต้อง lauch คำสั่งเหล่านั้น - ใช้ - กระบวนการแทน - เป็น oneliners สร้างขึ้นทันทีจากรหัสรวบรวมและสร้างไปป์ชื่อจะซับซ้อนสิ่ง …

2
เมานต์ดิสก์ที่ไม่ว่างเป็นโหมดอ่านอย่างเดียว
ฉันต้องการบังคับให้พาร์ติชันดิสก์อ่านโหมดอย่างเดียวและเก็บไว้เป็นแบบอ่านอย่างเดียวนานกว่า 30 นาที สิ่งที่ฉันได้ลอง: mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem) ปัญหา : สิ่งนี้ทำให้อุปกรณ์เกิดข้อผิดพลาดเนื่องจากบางกระบวนการใช้พาร์ติชัน ฉันไม่ต้องการฆ่ากระบวนการโดยใช้ดิสก์ ฉันต้องการจำลองดิสก์ในทันทีที่อ่านอย่างเดียวเมื่อกระบวนการยังคงใช้งานอยู่ ใช้คีย์ sysrq magic ดังด้านล่าง echo u > /proc/sysrq-trigger ปัญหา : สิ่งนี้จะทำให้พาร์ติชันดิสก์ทั้งหมดเป็นแบบอ่านอย่างเดียว (แม้ว่าอุปกรณ์จะไม่ว่าง) แต่หลังจาก 20-30 นาทีเครื่องจะรีบูตตัวเอง เครื่องบางเครื่องกำลังรีบูตทันทีเมื่อคำสั่งนี้ถูกดำเนินการ ไม่แน่ใจว่าเกิดจากการรีบูตครั้งนี้หรือไม่ ฉันไม่ต้องการให้เครื่องรีบูตตัวเองและต้องการให้ดิสก์อยู่ในโหมดอ่านอย่างเดียวเป็นเวลา 30+ นาที คำถาม : มีวิธีใดที่ดีกว่าที่ฉันสามารถบังคับให้พาร์ติชันดิสก์เดียวอ่านอย่างเดียวและอยู่ในสถานะนั้นเป็นเวลาครึ่งชั่วโมงและนำมันกลับไปที่โหมดอ่าน - เขียนโดยไม่ทำให้กระบวนการรีบูตใด ๆ ?

2
ฉันจะทำซ้ำการเลือกแพ็คเกจที่ติดตั้งจากระบบ Debian หนึ่งไปยังอีกระบบหนึ่งได้อย่างไร (Debian Wheezy)
ฉันกำลังพยายามตั้งค่าสภาพแวดล้อมการจัดเตรียมใน VM เพื่อทดสอบการอัปเดตก่อนนำไปใช้กับระบบหลักของฉัน เพื่อที่จะทำเช่นนั้นฉันได้ทำการติดตั้งพื้นฐานของ Debian Wheezy (เช่นเดียวกับในระบบหลัก) ใน VM จากนั้นก็รันเป็นรูทจากภายใน VM: # dpkg --clear-selections # dpkg --add-architecture i386 # apt-get update # ssh me@main-system 'dpkg --get-selections | grep -v deinstall' | \ dpkg --set-selections สถาปัตยกรรมของ i386 นั้นเป็นสิ่งจำเป็นสำหรับฉัน ระบบเป็นแบบดั้งเดิม 64 ปัญหาเกิดขึ้นกับการdpkg --set-selectionsทำงานใน VM ฉันมีแพ็กเกจบางอย่างที่ต้องการการจัดการเป็นพิเศษ (อันที่จริงแล้วเป็นเหตุผลหลักว่าทำไมฉันต้องการสภาพแวดล้อมการจัดเตรียมในตอนแรก) แต่เมื่อฉันรันคำสั่งสุดท้ายข้างต้นฉันได้ผลลัพธ์ประมาณพันล้านบรรทัดเช่น: dpkg: warning: package not in …

1
เหตุใดหน้าจอแล็ปท็อปจึงเรียกว่า eDP1
ในแล็ปท็อปเครื่องใหม่ของฉันการใช้งานi915และintelไดรเวอร์ Xorg หน้าจอแล็ปท็อปเรียกว่า eDP1 ใน Randr $ xrandr eDP1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm 1366x768 60.14 + 40.09 1360x768 59.80 59.96 1024x768 60.00* 800x600 60.32 56.25 640x480 59.94 ทำไมถึงเรียกว่าeDP1? "e" ของสิ่งที่eDP1ยืนหยัดเพื่อ?
19 xorg  laptop  monitors  xrandr 

8
การเรียกใช้สคริปต์ทุบตีหลาย ๆ ชุดและเรียกใช้พร้อมกันไม่ใช่เรียงตามลำดับ
สมมติว่าฉันมีสาม (หรือมากกว่า) สคริปต์ทุบตี: script1.sh, และscript2.sh script3.shผมอยากจะเรียกทั้งสามของสคริปต์เหล่านี้และเรียกพวกเขาในแบบคู่ขนาน วิธีหนึ่งในการทำเช่นนี้คือเพียงเรียกใช้คำสั่งต่อไปนี้ nohup bash script1.sh & nohup bash script2.sh & nohup bash script3.sh & (โดยทั่วไปสคริปต์อาจใช้เวลาหลายชั่วโมงหรือหลายวันจึงจะเสร็จสิ้นดังนั้นฉันต้องการใช้nohupเพื่อให้สคริปต์ทำงานต่อไปแม้ว่าคอนโซลของฉันจะปิด) แต่มีวิธีใดบ้างที่จะดำเนินการคำสั่งทั้งสามนี้ควบคู่กับการโทรครั้งเดียว ? ฉันกำลังคิดอะไรบางอย่างเช่น nohup bash script{1..3}.sh & แต่นี้จะปรากฏในการดำเนินการscript1.sh, script2.shและscript3.shในลำดับที่ไม่ได้อยู่ในแบบคู่ขนาน

1
ใช้ gzip เพื่อบีบอัดไฟล์ในไดเรกทอรียกเว้นไฟล์. gz ที่มีอยู่แล้ว
ฉันมีสมุดบันทึกที่ผมอยากจะตั้งค่าการงานในการบีบอัดโดยใช้gzip ปัญหาคือฉันไม่ต้องการบีบอัดบันทึกที่ฉันบีบอัดไว้แล้ว ฉันพยายามใช้ls | grep -v gz | gzipแต่ดูเหมือนจะไม่ทำงาน มีวิธีทำเช่นนี้หรือไม่? โดยทั่วไปฉันต้องการ gzip ทุกไฟล์ในไดเรกทอรีที่ไม่ได้ลงท้ายด้วย. gz
19 gzip 

3
การส่งคำขอ CURL ด้วย IP ที่กำหนดเอง
มันควรจะเป็นไปไม่ได้? สมมติว่าฉันไม่ต้องการคำตอบฉันแค่ต้องการส่งคำขอ เราไม่ควรเปลี่ยน tcp / ip header ได้เพราะคอมพิวเตอร์ของเราส่งมัน? ฉันอาจจะหายไปบางสิ่งบางอย่างอยากรู้อยากเห็นจริง ๆ เรียนรู้เกี่ยวกับมันในมหาวิทยาลัย
19 curl 

3
มีวิธีที่จะทำให้รูปภาพ. pdf เรียบจากบรรทัดคำสั่งหรือไม่
ใน GIMP ฉันสามารถนำเข้า. pdf และใช้ GUI เพื่อทำให้แบน (ถ้าทำด้วยเลเยอร์จำนวนมาก) โดยเลือก "Flatten Image" ในเมนูแบบเลื่อนลง "รูปภาพ" จากนั้นฉันสามารถส่งออก. pdf ด้วยชื่อไฟล์ใหม่ ฉันต้องการทำสิ่งนี้โดยอัตโนมัติ มีวิธีทำผ่านเทอร์มินัลไหม?

1
แป้นรีแมปแป้นยาก?
ฉันกำลังพยายามหาวิธีในการแมปแป้นแป้นใหม่อย่างแน่นหนา ฉันลองใช้ xmodmap และ setxkbmap แต่มันไม่สามารถใช้งานกับแอปพลิเคชั่นหนึ่ง ๆ ได้ คำสั่งดังกล่าวทำงานได้กับหน้าต่าง / แอพพลิเคชั่นปกติอื่น ๆ บน X tho ฉันคิดว่าแอปพลิเคชันอาจอ่านข้อมูลดิบของแป้นพิมพ์และไม่สนใจอินพุต X หรือไม่ ดังนั้นจะทำการแมปคีย์ใหม่โดยไม่ใช้ xmodmap และ setxkbmap ได้อย่างไร? หากเป็นไปได้ที่จะใช้ซอฟต์แวร์บางอย่าง ฉันยังลอง xkeycaps, xkbcomp แต่ไม่ได้ลอง loadkeys เนื่องจากมันทำงานบน X ฉันพบที่นี่ที่ฉันสามารถลองsetkeycodesได้"เพราะหลังจากกำหนดรหัสคีย์เคอร์เนลปุ่มควรทำงานใน xorg"แต่ฉันก็พบว่า"คุณไม่สามารถใช้ 'setkeycodes' บนแป้นพิมพ์ USB"นั่นเป็นกรณีของฉัน (ฉันสนใจในกรณีนี้ บางคนใช้งานได้กับ ps2 เพราะฉันคิดว่าฉันสามารถใช้อะแดปเตอร์ได้) นี่ดูเหมือนจะมีแนวโน้ม"แผนที่ scancodes เป็นรหัส"แต่หลังจากการทดสอบสองสามอย่างไม่มีอะไรเปลี่ยนแปลงนี่คือพวกเขา: ฉันพบ keycode "36" ("j" กุญแจ) ที่ vt1 …

1
ฉันควรตั้งค่าภาษาของฉันไว้ที่อะไรและความหมายของการทำเช่นนั้นคืออะไร
คำถามนี้ถูกกระตุ้นโดยการถามคำถาม เบราว์เซอร์ Chromium ไม่อนุญาตให้ตั้งค่าขนาดกระดาษเริ่มต้นสำหรับ "Print to File"และการสนทนากับ @Gilles บนแชท ตามที่ชี้แจงโดย @don_crissti และเมื่อตรวจสอบโดยฉันแล้วการเปลี่ยนสถานที่ (อย่างน้อยLC_PAPER) ทำให้เกิดความแตกต่างในขนาดกระดาษที่เลือก ฉันไม่เคยคิดมากว่าจะเลือกอะไรและมักจะไปด้วยen_US.UTF-8เพราะมันเป็นทางเลือกที่สมเหตุสมผล อย่างไรก็ตามต่อ @Gilles ในการแชท (ดูการสนทนาเริ่มต้นที่http://chat.stackexchange.com/transcript/message/17017095#17017095 ) สารสกัดจาก: Gilles: LC_PAPER เริ่มต้นที่ $ LANG Gilles: คุณต้องมี LANG = en_US.UTF-8 นั่นเป็นความคิดที่ไม่ดี: มันกำหนด LC_COLLATE และนั่นก็เป็นสิ่งที่ไม่ดีอยู่เสมอ Gilles: LC_COLLATE ไม่ได้อธิบายการเรียงหน้าที่ถูกต้องมันมีข้อ จำกัด มากเกินไป (ลบตัวอักษรทีละตัวอักษร) ลบ LANG และตั้งค่า LC_CTYPE และ LC_PAPER แทน Gilles: บวก …
19 locale 

4
ทำไมบางคำสั่งไม่อ่านจากอินพุตมาตรฐาน?
ฉันสงสัยว่าเมื่อไหร่ที่เราควรใช้ไปป์ไลน์และเมื่อใดที่เราไม่ควรทำ พูดเช่นเพื่อฆ่ากระบวนการบางอย่างที่จัดการไฟล์ pdf ข้อมูลต่อไปนี้จะไม่ทำงานโดยใช้ไปป์ไลน์: ps aux | grep pdf | awk '{print $2}'|kill แต่เราสามารถทำได้ด้วยวิธีต่อไปนี้เท่านั้น: kill $(ps aux| grep pdf| awk '{print $2}') หรือ ps aux | grep pdf | awk '{print $2}'| xargs kill อ้างอิงจากman bash(เวอร์ชั่น4.1.2): The standard output of command is connected via a pipe to the standard input …
19 shell  pipe  arguments  stdin 

2
คุณค่าความดีของ (-) หมายถึงอะไร
ตามหน้า man และ wikipedia; niceช่วงจาก -20 ถึง 20 แต่เมื่อฉันเรียกใช้คำสั่งต่อไปนี้ฉันพบว่าบางกระบวนการมีค่าที่ไม่ใช่ตัวเลขเช่น (-) ดูคอลัมน์ที่หกจากด้านซ้ายด้วยชื่อ 'NI' ความอ่อนโยนของ (-) บ่งบอกอะไร? ps axl F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 19356 1548 poll_s Ss ? 0:00 /sbin/init 1 0 2 0 20 0 0 …

1
เมื่อใดที่คุณจะใช้ pivot_root บน switch_root
ฉันต้องการที่จะเข้าใจกระบวนการเริ่มต้นของ Linux ที่ดีขึ้นเพื่อที่จะ netboot ระบบผ่าน ceph มากกว่า nfs ในกระบวนการฉันเจอรูทวิทช์สองรูปแบบ หนึ่งเรียกว่า switch_root และอีกหนึ่งเรียกว่า pivot_root สคริปต์เหล่านี้ถูกเรียกใช้จากระบบไฟล์ในหน่วยความจำ (initramfs) ที่ได้รับผ่าน tftp โดยใช้กระบวนการบูต pxe เมื่อไหร่ที่คุณจะใช้อันอื่น ฉันเคยเห็นทั้งสองใช้ในสคริปต์ init บางส่วนอยู่ในรูท

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