Unix & Linux

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

1
systemctl จะหมดเวลาในการรีสตาร์ทบริการ
ฉันใช้ CentOS 7.2 ดูด้านล่าง: # systemctl stop firewalld Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24) Failed to stop firewalld.service: Connection timed out Failed to get load state of firewalld.service: Connection timed out journalctl เพียงรายงานข้อผิดพลาดต่อไปนี้: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed …

3
พรอมต์ PS1 เพื่อแสดงเวลาที่ผ่านไป
ขณะนี้ฉันใช้สิ่งนี้เพื่อแสดงเวลาปัจจุบันใน bash prompt ของฉัน: PS1=\[\e[0;32m\]\t \W>\[\e[1;37m\] 20:42:23 ~> เป็นไปได้หรือไม่ที่จะแสดงเวลาที่ผ่านไปตั้งแต่พรอมต์ก่อนหน้า? เช่น: 00:00:00 ~> sleep 10 00:00:10 ~> sleep 20 00:00:20 ~> สิ่งนี้ไม่มีอะไรที่เหมือนกันกับมันเป็นไปได้ไหมที่จะเปลี่ยน PS1 เป็นระยะ ๆ โดยสคริปต์ในพื้นหลัง
10 bash  prompt 

2
เหตุใดขณะหนึ่งลูปจึงหยุดหลังจากถูกระงับ
ทำไมการใช้ bash และหยุดชั่วขณะหนึ่งวงจึงหยุดลงหลังจากกลับมาทำงานต่อ ตัวอย่างสั้น ๆ ด้านล่าง $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ ฉันคุ้นเคยกับสัญญาณและฉันเดาว่านี่อาจเป็นพฤติกรรมตามธรรมชาติของการทุบตีที่นี่ แต่ฉันต้องการที่จะเข้าใจมากขึ้นว่าทำไมมันทำงานในลักษณะนี้โดยเฉพาะ

3
เป็นไปได้หรือไม่ที่จะกำหนดขีด จำกัด แบบนุ่มนวลบางอย่างเกี่ยวกับการใช้หน่วยความจำของกระบวนการ?
ฉันคิดว่ามันไม่ใช่ปัญหาที่ผิดปกติ: กระบวนการหนึ่งจัดสรรหน่วยความจำจำนวนมาก (ไม่ว่าจะเกิดจากข้อผิดพลาดของหน่วยความจำรั่วเพราะคุณพยายามประมวลผลไฟล์อินพุตที่มีขนาดใหญ่หรืออะไรก็ตาม) RAM เต็มและบางจุด Linux ต้องสลับเพื่อสลับ ทีนี้บางครั้งมันก็เป็นทางเลือกสุดท้าย: ถ้าฉันมีการคำนวณราคาแพงฉันไม่ต้องการที่จะสูญเสียข้อมูลถ้าในตอนท้ายฉันหมด RAM อย่างไรก็ตามบ่อยครั้งกว่า (ในประสบการณ์ของฉัน) การใช้หน่วยความจำไม่ได้ จำกัด โดยการโกงอาจกระบวนการรถ นั่นคือฉันไม่ได้จบลงด้วยข้อมูลที่ต้องการน้อยกว่าที่ถูกย้ายไปสับเปลี่ยน แต่ระบบปฏิบัติการถูกบังคับให้สลับโหลดข้อมูลอย่างกะทันหัน และน่าเสียดายที่ไม่เพียง แต่ทำลายกระบวนการที่กระทำผิดกฎหมายอย่างหนัก แต่สามารถนำระบบทั้งหมดมาสู่ความนิ่ง (มันไม่เลวร้ายนักในเครื่องที่ใช้ SSD แต่ OTOH ทำให้ฉันกังวลว่าการเขียนกิกะไบต์และกิกะไบต์ของข้อมูลขยะอาจเป็นไปได้ไหม ระยะยาวเป็นอันตรายต่อเซลล์แฟลช) จนกว่าฉันจะสังเกตเห็นปัญหาและฆ่ากระบวนการด้วยตนเอง (เมื่อใช้เวลาจริงนาทีจนกระทั่งฉันได้เข้าสู่ระบบเสมือน terminal!) ครึ่งเซสชั่นการทำงานของฉันในการแลกเปลี่ยนและฉันต้องรอสักครู่จนกว่าระบบจะทำงานได้อย่างราบรื่น อีกครั้ง มีวิธีแก้ไขปัญหา draconic หนึ่งวิธี: บังคับใช้ขีด จำกัด หน่วยความจำฮาร์ด แต่การทำทั้งระบบนี้บางครั้งจะทำให้กระบวนการที่ฉันต้องการอยู่นิ่งและถ้าฉันต้องทำเองulimitก่อนที่จะเริ่มขั้นตอนการละเมิด ... ดีฉันมักจะลืมจนกว่ามันจะสายเกินไป วิธีแก้ปัญหาที่เป็นไปได้ที่ฉันมีความสุขมากขึ้น: หากกระบวนการใดเกินกว่าการใช้งานหน่วยความจำที่แน่นอนก็จะลดปริมาณลงอย่างผิดเพี้ยนเพื่อให้ระบบส่วนที่เหลือตอบสนองได้ หากกระบวนการใดเกินกว่าการใช้หน่วยความจำที่แน่นอนก็เป็นSIGSTOPเหตุให้ฉันมีเวลาคิดออกว่าจะทำอย่างไรต่อไป หากกระบวนการเข้าใกล้ขีด จำกัด RAM ฉันจะได้รับคำเตือนก่อนที่การแลกเปลี่ยนจะเริ่มขึ้น มีวิธีใดบ้างที่จะรับพฤติกรรมเช่นนี้หรือคล้ายกัน?
10 linux  memory  swap 

1
GNU Stow สามารถใช้ไดเรกทอรี stow ที่เป็นลิงก์สัญลักษณ์ได้หรือไม่?
พิจารณาสคริปต์นี้ #! /usr/bin/env bash mkdir -p target mkdir -p mydir/package/ touch mydir/package/file ln --symbolic mydir mylink file mylink stow --verbose --dir=./mylink --target=./target package file target/file ผลลัพธ์คือ mylink: symbolic link to mydir LINK: file => ../mydir/package/file target/file: symbolic link to ../mydir/package/file ก่อนใช้งานstowจะมีลักษณะดังนี้: . ├── mydir │ └── package │ └── file …
10 symlink  stow 

2
แทนที่กระบวนการปัจจุบันด้วยกระบวนการ / กระบวนการลูก
ฉันมีโปรแกรมPที่คาดว่าจะได้รับ "สวัสดี" และส่งออก "ทำไม" ก่อนที่จะให้คุณสมบัติ คุณลักษณะนี้ใช้งานโดยโปรแกรมอื่นที่ไม่ทราบว่ามันเป็นมารยาททั่วไปในการเริ่มการสนทนากับ "Hello" ฉันจึงต้องการเขียน wrapper สำหรับPที่ทำงานเช่นนี้ (ไวยากรณ์ zsh): coproc P print -p Hello # Send Hello to P read -pr line # Read what P has to say [[ "$line" = "Why?" ]] && Replace current process with the coprocess. echo Could not get P's attention. …
10 shell  scripting  process  zsh 

4
ทำไมโปรแกรมของฉันถูกเรียกว่า "set" ไม่ถูกเรียกใช้งาน?
ฉันได้สร้างโปรแกรม C อย่างง่ายเช่นนั้น: int main(int argc, char *argv[]) { if (argc != 5) { fputs("Not enough arguments!\n", stderr); exit(EXIT_FAILURE); } และฉันมีเส้นทางของฉันแก้ไขในetc / bash.bashrcเช่นนั้น PATH=.:$PATH ฉันได้บันทึกโปรแกรมนี้เป็น set.c และกำลังรวบรวมด้วย gcc -o set set.c ในโฟลเดอร์ ~/Programming/so อย่างไรก็ตามเมื่อฉันโทร set 2 3 ไม่มีอะไรเกิดขึ้น. ไม่มีข้อความที่ปรากฏ การเรียกร้อง ./set 2 3 ให้ผลลัพธ์ที่คาดหวัง ฉันไม่เคยมีปัญหากับ PATH มาก่อนและ which set ./setผลตอบแทน …

1
วิธีการแก้ไข“ การยกเลิกการรับรองความถูกต้องตามตัวเลือกท้องถิ่น”
ฉันสร้าง Linux ในตัวโดยใช้Buildrootและฉันมีปัญหาในการเชื่อมต่อกับ AP ของฉัน ไม่สามารถรับที่อยู่ IP ได้มากกว่าหนึ่งครั้ง ฉันใช้ wpa_supplicant เพื่อเชื่อมต่อ AP ของฉันโดยใช้ WPA2-PSK มันทำงานร่วมกับ AP อื่น ๆ เช่นสมาร์ทโฟนของฉันในโหมด AP เมื่อฉันใช้iwconfig wlan0ฉันเห็นว่าฉันเชื่อมโยงกับ AP ของฉัน wlan0 IEEE 802.11bgn ESSID:"ZyXEL_B3B5" Mode:Managed Frequency:2.462 GHz Access Point: 90:EF:68:D3:B3:B5 Bit Rate=58.5 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on …
10 wifi  dhcp  busybox  wlan  buildroot 

2
เครื่องมือ commandline wifi ที่น่าเชื่อถือที่สุดคืออะไร iw กับ wpa_cli กับ nmcli
ฉันกำลังสำรวจเครื่องมือระดับล่างสองสามตัวสำหรับเชื่อมต่อกับเครือข่ายไร้สายและฉันพบเครื่องมือต่อไปนี้ (พร้อมลิงก์เอกสาร / กวดวิชาที่มีประโยชน์): iw wpa_cli nmcli ฉันไม่สามารถหาการประเมินอย่างละเอียดของเครื่องมือเหล่านี้หรือเครื่องมือที่คล้ายกัน บางทีใครบางคนสามารถเปรียบเทียบเครื่องมือเหล่านี้ในแง่ของความน่าเชื่อถือและใช้งานง่าย? สิ่งที่ดีที่สุดสำหรับเดสก์ทอป Linux? ยินดีต้อนรับลิงก์ไปยังบทความที่มีอยู่เนื่องจากฉันไม่สามารถหาข้อมูลได้มากจากการค้นหาเว็บ ขออภัยถ้าคำถามนี้เปิดกว้างเกินไป แต่ฉันไม่สามารถหาการเปรียบเทียบที่ดีและฉันได้รับความเห็นที่หลากหลายจากบุคคลเกี่ยวกับเครื่องมือที่น่าเชื่อถือที่สุด นี่เป็นเพียงเล็กน้อยจากประสบการณ์ของฉัน: ฉันใช้ wpa_cli แล้วและฉันก็ค่อนข้างพอใจ มันทำงานนอกกรอบบนระบบ Linux หลายระบบ แต่ดูเหมือนจะไม่ทำงานเมื่อติดตั้ง NetworkManager ปัญหาหลักของฉันคือตอนนี้ฉันมีเครือข่าย wifi มากกว่า 100 ตัวในการกำหนดค่าของฉันและดูเหมือนจะไม่มีวิธีง่ายๆในการเพิ่ม / ลบเครือข่ายโดย SSID ฉันต้องใช้หมายเลขเครือข่ายที่กำหนดโดย wpa_supplicant และดูเหมือนว่าไม่มีเหตุผลที่จะกำหนดหมายเลขใหม่หรือจัดเรียงเครือข่ายใหม่ ฉันต้องป้อน SSID ด้วยตนเองสำหรับเครือข่ายใหม่ด้วย - บางทีสิ่งที่คล้ายกับการเติมแท็บหรือเมนูการเลือกข้อความจะดี สิ่งนี้ทำให้ฉันเสียเวลามากมายเช่น SSID มีช่องว่างต่อท้าย นอกจากนี้ฉันยังมีปัญหาที่ฉันต้องตั้งค่ากำหนดเองเช่นscan_ssid=1สำหรับเครือข่ายที่ซ่อนอยู่และkey_mgmt=NONEสำหรับเครือข่ายที่ไม่ได้เข้ารหัสด้วยตนเอง ฉันกังวลว่าบางกรณีพิเศษอื่น ๆ อาจปรากฏขึ้นเมื่อเชื่อมต่อกับเครือข่าย wifi ใหม่และฉันอาจไม่มีเวลาอ่านwpa_supplicant.confวิธีแก้ปัญหา ดังนั้นความเป็นมิตรต่อผู้ใช้จึงเป็นเรื่องท้าทายสำหรับ wpa_cli …
10 wifi  wpa  nmcli  iwlwifi  wpa-cli 

4
จะหยุดการตรวจสอบระบบไฟล์ (fsck) ในการบู๊ตได้อย่างไร?
นาน ๆ ครั้ง (ทุก ๆ 30 บูต) ระบบ linux ของฉันตัดสินใจที่จะตรวจสอบข้อผิดพลาดของระบบไฟล์ ฉันตกลงกับสิ่งนี้ - สิ่งที่ต้องทำสิ่งที่ต้องทำ แต่บางครั้งฉันก็ต้องใช้แล็ปท็อปของฉันในการบูตอย่างรวดเร็ว ฉันต้องการงานด่วนที่ต้องทำและฉันไม่มีเวลารอfsckให้เสร็จ (อาจใช้เวลาประมาณ 10 นาที) ฉันจะหยุดการตรวจสอบในกรณีนี้ได้อย่างไร ทางออกเดียว (ดีการแก้ปัญหา) ฉันมาถึงตอนนี้คือการปิดอัตโนมัติ fsck และเรียกใช้ด้วยตนเองเป็นครั้งคราว ฉันไม่ชอบวิธีการนี้เพราะฉันต้องจำเมื่อมันเป็นครั้งสุดท้ายที่ฉันเรียกใช้ สิ่งที่ฉันต้องการคือสามารถกดCtrl+ Cเพื่อยกเลิกการตรวจสอบระบบไฟล์ ให้การตรวจสอบระบบไฟล์ทำงานในระหว่างการบู๊ตครั้งต่อไป! แต่จริงๆแล้วถ้าฉันกดCtrl+ C fsckเพิ่งเริ่มใหม่
10 fsck 

1
หน่วยความจำที่ไม่สามารถอ้างสิทธิ์ได้ถูกจัดสรรให้กับแผ่นพื้นซึ่งพิจารณาว่าใช้แล้วหรือมีแคชอยู่หรือไม่
หลังจากการประเมิน / proc / meminfo ฉันเห็นข้อมูลต่อไปนี้: $cat /proc/meminfo MemTotal: 197852592 kB MemFree: 64755992 kB MemAvailable: 65655112 kB Buffers: 4388 kB Cached: 759952 kB SwapCached: 0 kB Active: 649472 kB Inactive: 308340 kB Active(anon): 193840 kB Inactive(anon): 25316 kB Active(file): 455632 kB Inactive(file): 283024 kB Unevictable: 0 kB Mlocked: 0 kB …

1
แพคเกจเสมือนเป็นความถนัดเข้าใจและจัดการแพคเกจ
ฉันเคยเห็นใน Debian แล้วว่ามีแพ็คเกจไม่กี่ตัวที่เป็นแพ็คเกจเสมือนจริง ทำไมแพ็คเกจเสมือนดังกล่าวจึงมีอยู่? สำหรับเช่น: - $ aptitude show pppoeconf Package: pppoeconf State: installed Automatically installed: no Version: 1.21 Priority: optional Section: net Maintainer: Gregory Colpart <reg@debian.org> Architecture: all Uncompressed Size: 297 k Depends: whiptail-provider | whiptail, ppp (>= 2.4.2+20040428-2) | pppoe (>= 3.0), ppp (>= 2.4.1.uus2-4), gettext-base (>= 0.13), …

2
วิธีสร้างพาร์ติชั่นในพื้นที่ว่างโดยใช้ GNU Parted
ด้านล่างนี้เป็นฮาร์ดดิสก์ของฉันที่แสดงใน gnu แยกส่วน: (parted) print free Model: ATA HGST HTS541075A9 (scsi) Disk /dev/sda: 750GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name 17.4kB 1049kB 1031kB Free Space 1 1049kB 538MB 537MB fat32 EFI System Partition boot 2 538MB 468GB 467GB ext4 468GB 520GB 52.4GB …

3
ดำเนินการคำสั่งทุก ๆ X วินาที
ฉันต้องการที่จะดำเนินการคำสั่งนับ 10 วินาทีและมีมันดำเนินการในพื้นหลัง (จึงไม่watch?) คำตอบทั้งหมดแสดงบางอย่างเช่นต่อไปนี้ แต่จะดำเนินการ 11 ถึง 14 วินาที สิ่งนี้จะสำเร็จได้อย่างไร while true; do # perform command that takes between 1 and 4 seconds sleep 10 done

1
mutt สามารถแสดงดัชนีและเนื้อหาของอีเมลในแนวนอนได้หรือไม่?
ฉันต้องการmuttแสดงดัชนีอีเมลพร้อมกันกับเนื้อหาของอีเมลที่เลือกซึ่งอยู่ติดกัน ผมเข้าใจว่าคุณสามารถตั้งmuttค่าให้แสดงดัชนีของอีเมลในเวลาเดียวกันขณะที่ร่างกายของข้อความตัวเองในแนวตั้งแยก ตัวอย่างเช่นในmuttrc: set pager_index_lines = 10 # number of index lines to show set pager_context = 3 # number of context lines to show สิ่งนี้จะสร้างบานหน้าต่างแสดงดัชนีอีเมลที่ด้านบนของหน้าจอโดยมีเนื้อหาของข้อความที่เลือกในบานหน้าต่างด้านล่าง 62 r Jul 22 Sender 1 (783K) Subject 1 63 Sep 03 Sender 2 (2.9K) Subject 2 64 r Sep 17 Sender 3 (2.0K) …
10 email  mutt 

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