คำถามติดแท็ก exec

แท็กนี้หมายถึงจุดเริ่มต้นของโปรแกรมย่อยอื่น ตั้งชื่อตามตระกูลของการเรียกระบบ POSIX ซึ่งมีชื่อขึ้นต้นด้วย "exec" (โดยเฉพาะอย่างยิ่งคือ "execve") แม้ว่าจะมีแนวคิดที่คล้ายคลึงกันในแพลตฟอร์มอื่น ๆ เช่นกันโดยเฉพาะอย่างยิ่งเมื่อรวมกับการเริ่มต้นกระบวนการอื่น

3
อะไรคือความแตกต่างระหว่าง eval, exec และ compile?
ฉันได้ดูการประเมินรหัส Python แบบไดนามิกและพบกับeval()และcompile()ฟังก์ชั่นและexecคำสั่ง ใครช่วยอธิบายความแตกต่างระหว่างevalและกับexecและโหมดที่แตกต่างกันได้compile()อย่างไร
428 python  dynamic  eval  exec 

3
Ruby ความแตกต่างระหว่าง exec ระบบและ% x () หรือ Backticks
ความแตกต่างระหว่างวิธีการทับทิมต่อไปนี้คืออะไร? exec, systemและ%x()หรือBackticks ฉันรู้ว่ามันถูกใช้เพื่อรันคำสั่งเทอร์มินัลผ่านทางการเขียนโปรแกรมผ่าน Ruby แต่ฉันต้องการรู้ว่าทำไมมีสามวิธีที่แตกต่างกันในการทำเช่นนี้
370 ruby  exec 


4
PHP shell_exec () vs exec ()
ฉันกำลังพยายามเข้าใจถึงความแตกต่างระหว่างshell_exec()และexec()... ฉันมักจะใช้exec()คำสั่งด้านเซิร์ฟเวอร์เสมอเมื่อไรฉันจะใช้shell_exec()? เป็นshell_exec()เพียงชื่อย่อสำหรับexec()? ดูเหมือนว่าจะเป็นสิ่งเดียวกันกับพารามิเตอร์ที่น้อยลง
345 php  shell  command  exec 

5
PHP exec () vs system () vs passthru ()
อะไรคือความแตกต่าง? มีสถานการณ์หรือเหตุผลที่เฉพาะเจาะจงสำหรับแต่ละฟังก์ชั่นหรือไม่? ถ้าใช่คุณสามารถยกตัวอย่างสถานการณ์เหล่านั้นได้ไหม PHP.net บอกว่าพวกมันถูกใช้เพื่อรันโปรแกรมภายนอก ดูการอ้างอิง จากตัวอย่างที่ฉันเห็นฉันไม่เห็นความแตกต่างที่ชัดเจน หากฉันเพียงแค่เรียกใช้สคริปต์ (bash หรือ python) คุณแนะนำให้ใช้ฟังก์ชันใด
312 php  command  exec 


10
find: อาร์กิวเมนต์ที่ขาดหายไปถึง -exec
ฉันได้รับความช่วยเหลือในวันนี้ด้วยคำสั่ง แต่ดูเหมือนจะไม่ทำงาน นี่คือคำสั่ง: find /home/me/download/ -type f -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 && rm {}\; เชลล์ส่งคืน find: missing argument to `-exec' สิ่งที่ฉันพยายามทำโดยทั่วไปคือไปที่ไดเรกทอรีซ้ำ (ถ้ามีไดเรกทอรีอื่น) และเรียกใช้คำสั่ง ffmpeg กับ.rmประเภทไฟล์และแปลงเป็น.mp3ประเภทไฟล์ เมื่อเสร็จแล้วให้ลบ.rmไฟล์ที่เพิ่งถูกแปลง ฉันขอขอบคุณความช่วยเหลือในเรื่องนี้
206 bash  shell  find  arguments  exec 


5
ความแตกต่างระหว่าง fork (), vfork (), exec () และ clone ()
ฉันกำลังมองหาความแตกต่างระหว่างสิ่งทั้งสี่นี้ใน Google และฉันคาดหวังว่าจะมีข้อมูลจำนวนมากเกี่ยวกับเรื่องนี้ แต่จริงๆแล้วไม่มีการเปรียบเทียบที่ชัดเจนระหว่างการโทรสี่สาย ฉันตั้งค่าเกี่ยวกับการพยายามรวบรวมพื้นฐานแบบคร่าว ๆ ดูความแตกต่างระหว่างการเรียกระบบเหล่านี้และนี่คือสิ่งที่ฉันได้รับ ข้อมูลทั้งหมดนี้ถูกต้อง / ฉันไม่มีข้อมูลสำคัญอะไร Fork โดยทั่วไปแล้วการเรียก fork จะทำซ้ำกระบวนการปัจจุบันเหมือนกันเกือบทุกวิธี (ไม่ใช่ทุกสิ่งที่ถูกคัดลอกมาตัวอย่างเช่นข้อ จำกัด ทรัพยากรในการใช้งานบางอย่าง แต่แนวคิดก็คือการสร้างสำเนาให้ใกล้เคียงที่สุด กระบวนการใหม่ (เด็ก) รับรหัสกระบวนการที่แตกต่าง (PID) และมี PID ของกระบวนการเก่า (พาเรนต์) เป็นพาเรนต์ PID (PPID) เนื่องจากทั้งสองกระบวนการกำลังทำงานในรหัสเดียวกันทุกประการพวกเขาสามารถบอกได้ว่าโค้ดใดที่โค้ดส่งคืนของ fork - เด็กได้รับ 0 ผู้ปกครองได้รับ PID ของเด็ก ทั้งหมดนี้เป็นเรื่องสมมติว่า fork call ใช้งานได้หากไม่ใช่จะไม่มีการสร้างลูกและผู้ปกครองจะได้รับรหัสข้อผิดพลาด Vfork: ความแตกต่างพื้นฐานระหว่าง vfork และทางแยกคือเมื่อกระบวนการใหม่ถูกสร้างขึ้นด้วย vfork () กระบวนการหลักถูกระงับชั่วคราวและกระบวนการลูกอาจยืมพื้นที่ที่อยู่ของผู้ปกครอง สถานการณ์แปลก ๆ …
198 linux  process  fork  exec  clone 

12
node.js รันคำสั่งระบบพร้อมกัน
ฉันต้องการฟังก์ชั่นnode.js result = execSync('node -v'); ที่จะพร้อมดำเนินการบรรทัดคำสั่งที่กำหนดและกลับ stdout'ed ทั้งหมดของข้อความคำสั่งที่ PS การซิงค์ผิด ฉันรู้ว่า. เพียงเพื่อการใช้งานส่วนตัว UPDATE ตอนนี้เรามีวิธีการแก้ปัญหาของ mgutz ซึ่งให้รหัสออก แต่ไม่ใช่ stdout! ยังคงรอคำตอบที่แม่นยำยิ่งขึ้น UPDATE mgutzอัปเดตคำตอบของเขาและวิธีแก้ปัญหาอยู่ที่นี่ :) นอกจากนี้ตามที่dgo.aกล่าวว่ามีโมดูลแบบสแตนด์อโลนexec-sync อัพเดท 2014-07-30 ShellJS lib มาถึงแล้ว พิจารณาว่านี่เป็นตัวเลือกที่ดีที่สุดในตอนนี้ อัพเดท 2015-02-10 ในที่สุด! NodeJS 0.12 รองรับexecSyncโดยกำเนิด ดูเอกสารอย่างเป็นทางการ


9
เรียกใช้สคริปต์ Python จาก PHP
ฉันพยายามเรียกใช้สคริปต์ Python จาก PHP โดยใช้คำสั่งต่อไปนี้: exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2'); อย่างไรก็ตาม PHP ไม่ได้สร้างผลลัพธ์ใด ๆ การรายงานข้อผิดพลาดถูกตั้งค่าเป็น E_ALL และ display_errors เปิดอยู่ นี่คือสิ่งที่ฉันได้ลอง: ผมใช้python2, /usr/bin/python2และpython2.7แทน/usr/bin/python2.7 ฉันยังใช้เส้นทางสัมพัทธ์แทนเส้นทางสัมบูรณ์ซึ่งไม่ได้เปลี่ยนแปลงอะไรเลย ฉันพยายามใช้คำสั่งexec, ,shell_execsystem อย่างไรก็ตามหากฉันวิ่ง if (exec('echo TEST') == 'TEST') { echo 'exec works!'; } มันทำงานได้ดีอย่างสมบูรณ์ในขณะที่shutdown nowไม่ได้ทำอะไรเลย PHP มีสิทธิ์ในการเข้าถึงและเรียกใช้ไฟล์ แก้ไข: ขอบคุณ Alejandro ฉันสามารถแก้ไขปัญหาได้ หากคุณมีปัญหาเดียวกันอย่าลืมว่าเว็บเซิร์ฟเวอร์ของคุณอาจ / หวังว่าจะไม่ทำงานในฐานะรูท ลองเข้าสู่ระบบในฐานะผู้ใช้เว็บเซิร์ฟเวอร์ของคุณหรือผู้ใช้ที่มีสิทธิ์คล้ายกันแล้วลองรันคำสั่งด้วยตัวเอง
114 php  python  linux  exec  archlinux 

4
จะทำให้ไปป์ทำงานกับ Runtime.exec () ได้อย่างไร?
พิจารณารหัสต่อไปนี้: String commandf = "ls /etc | grep release"; try { // Execute the command and wait for it to complete Process child = Runtime.getRuntime().exec(commandf); child.waitFor(); // Print the first 16 bytes of its output InputStream i = child.getInputStream(); byte[] b = new byte[16]; i.read(b, 0, b.length); System.out.println(new String(b)); } …
104 java  exec  runtime.exec 

13
วิธีเรียกใช้ไฟล์ที่ฉันกำลังแก้ไขใน Vi (m)
วิธีเรียกใช้ไฟล์ที่ฉันแก้ไขใน Vi (m) และรับเอาต์พุตในหน้าต่างแยก (เช่นใน SciTE) แน่นอนฉันสามารถดำเนินการได้เช่นนั้น: :!scriptname แต่เป็นไปได้หรือไม่ที่จะหลีกเลี่ยงการเขียนชื่อสคริปต์และวิธีรับเอาต์พุตในหน้าต่างแยกแทนที่จะอยู่ด้านล่างของหน้าจอ
103 vim  exec 

5
เหตุใด find -exec mv {} ./target/ + จึงไม่ทำงาน
ฉันต้องการที่จะรู้ว่าสิ่งที่{} \;และ{} \+และ| xargs ...ทำ โปรดชี้แจงสิ่งเหล่านี้พร้อมคำอธิบาย คำสั่งด้านล่าง 3 คำสั่งรันและผลลัพธ์เดียวกัน แต่คำสั่งแรกใช้เวลาเล็กน้อยและรูปแบบก็แตกต่างกันเล็กน้อย find . -type f -exec file {} \; find . -type f -exec file {} \+ find . -type f | xargs file เป็นเพราะตัวแรกรันfileคำสั่งสำหรับทุกไฟล์ที่มาจากfindคำสั่ง โดยทั่วไปแล้วจะทำงานเป็น: file file1.txt file file2.txt แต่ 2 หลังพบด้วย-execคำสั่งเรียกใช้คำสั่งไฟล์หนึ่งครั้งสำหรับไฟล์ทั้งหมดเช่นด้านล่าง: file file1.txt file2.txt จากนั้นฉันเรียกใช้คำสั่งต่อไปนี้ซึ่งคำสั่งแรกทำงานโดยไม่มีปัญหา แต่คำสั่งที่สองให้ข้อความแสดงข้อผิดพลาด find . -type …
98 linux  find  cygwin  exec 

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