Score:1

วิธีรันโค้ดของฉันโดยใช้เทอร์มินัลโดยไม่ต้องใช้เทอร์มินัล

ธง sh

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

ดังนั้นฉันจึงเขียนเครื่องเล่นเพลงแบบไม่มีหัว (ไม่มี GUI) โดยใช้ python และฉันกำลังดำเนินการดังนี้: python3 main.py ฉันสามารถหยุดชั่วคราว/ยกเลิกการหยุดวิ่งชั่วคราวจากภายในโปรแกรม แต่เทอร์มินัลไม่ว่าง ฉันต้องปล่อยให้เทอร์มินัลพิเศษนี้ยังคงเปิดอยู่ในขณะที่ฉันกำลังทำอะไรอยู่และมันก็รบกวนจิตใจฉัน

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

:~$python3 main.py
กำลังเล่น track0.mp3: หยุดชั่วคราว 
หยุดชั่วคราว track0.mp3: ออก
:~$ls #ฉันยกเลิกโปรแกรมดังนั้นฉันจึงสามารถทำได้ในเทอร์มินัลที่กำลังทำงานอยู่

ฉันต้องการโต้ตอบกับโปรแกรมของฉันอย่างไร: เทอร์มินัลไม่ได้ถูกใช้งาน ดังนั้นฉันจึงสามารถเรียกใช้สิ่งอื่นๆ ในนั้นได้

:~$python3 main.py -init #ไม่ควรเปิดโปรแกรมในเทอร์มินัล
:~$ls #ฉันทำได้ในขณะที่เพลงกำลังเล่น
:~$python3 main.py pause #and like this ฉันหยุดโปรแกรมชั่วคราว
:~$nano ~/.bashrc #และอีกครั้งฉันสามารถใช้เทอร์มินัลของฉันได้ 
:~$python3 main.py ออก #และเช่นนี้ ฉันยุติโปรแกรมของฉัน

ฉันรู้ว่ามันเป็นไปได้ ฉันแค่ไม่รู้วิธี

แก้ไข: มีคนบอกว่าคุณควรเผยแพร่รหัสของคุณเพื่อให้เราสามารถช่วยเหลือคุณได้ ดังนั้น : https://github.com/yolowex/odd-musicplayer

YoloWex avatar
sh flag
คุณพูดถูก ฉันกำลังเพิ่มซอร์สโค้ดใน git ของฉัน
raj avatar
cn flag
raj
คุณสามารถลองเรียกใช้โปรแกรมของคุณภายใน `หน้าจอ` จากนั้นแยกเซสชัน `หน้าจอ` ออก (Ctrl-A แล้ว D) เมื่อใดก็ตามที่คุณต้องการกลับสู่โปรแกรม คุณสามารถแนบเซสชัน `หน้าจอ` (`หน้าจอ -r`) ใหม่ได้ หรือเพียงแค่เปิดหน้าต่าง `หน้าจอ` สองหน้าต่างแล้วสลับไปมาระหว่างกันตรวจสอบคู่มือ `หน้าจอ`: https://linux.die.net/man/1/screen
Score:3
ธง vn

คุณควรตระหนักว่าเทอร์มินัล Linux (bash) สามารถทำงานหลายอย่างพร้อมกันได้ ดังนั้นเทอร์มินัลจะไม่ถูก "ใช้งาน" อย่างแท้จริง ตามค่าเริ่มต้น คุณสามารถระงับโปรแกรมที่กำลังทำงานอยู่ได้ด้วย Ctrl + Z (การส่ง ใจจดใจจ่อ).

แต่การเรียกใช้สคริปต์ในพื้นหลังอาจง่ายกว่าด้วยซ้ำ

python3 main.py &

จากนั้นคุณสามารถให้โฟกัสที่พื้นหน้าได้ในภายหลังด้วยปุ่ม สั่งการ. นี่เป็นพื้นฐาน การควบคุมงาน.

หากคุณต้องการเรียกใช้สคริปต์เพิ่มเติมเพื่อไม่ให้แนบกับเทอร์มินัลปัจจุบัน (และไม่ออกเมื่อคุณปิด) ให้ใช้ ไม่อัพ สั่งการ:

nohup python3 main.py &
YoloWex avatar
sh flag
ฉันพยายาม & / ปฏิเสธและ nohup แต่ดูเหมือนจะไม่ทำงาน ไม่มีอะไรเกิดขึ้นอย่างแน่นอน ฉันคิดว่าเป็นเพราะโค้ดของฉันมีคำสั่งอินพุตและเธรด ดังนั้นมันจึงค่อนข้างยุ่งยาก เพื่อออกจากโปรแกรมอย่างถูกต้องฉันจำเป็นต้องใช้ thread.daemon ดังนั้นเธรดจะถูกฆ่าหลังจากยุติโปรแกรม ฉันลอง ```Ctrl```+```Z``` ด้วย
Artur Meinild avatar
vn flag
ตกลง ในกรณีนั้น [ดังนั้น] เป็นสถานที่ที่เหมาะสมที่จะถาม

โพสต์คำตอบ

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