OS X: วิธีป้องกันไม่ให้คอมพิวเตอร์เข้าสู่โหมดสลีประหว่างเซสชัน ssh


29

เมื่อฉันsshเป็นOS Xคอมพิวเตอร์บนเครือข่ายของฉันเซสชั่นมีจำนวน จำกัด จนกว่าOS Xจะเข้าสู่การนอนหลับโหมด

มีวิธีป้องกันไม่ให้เกิดเหตุการณ์นี้ในระหว่างเซสชันSSHของฉันนอกเหนือจากการกระแทกของเมาส์หรือแป้นพิมพ์หรือปิดใช้งานฟังก์ชัน sleep ด้วยตนเองหรือไม่

แก้ไข: เซสชั่น ssh จะเป็นเมานท์ sshfs ง่าย


คุณไม่ต้องการที่จะป้องกันไม่ให้มันหลับก่อนที่เซสชัน SSH ของคุณ?
SamB

คำตอบ:


9

นี่ไม่ใช่ทางออกนอกกรอบ แต่มันอาจจะใช้ได้ถ้าไม่มีใครแก้ปัญหา :-)

pmsetคุณสามารถจัดการการตั้งค่าการจัดการพลังงานที่มีคำสั่ง ดูmanpageสำหรับข้อมูลเพิ่มเติมเกี่ยวกับมัน

การตั้งค่าที่น่าสนใจที่เราต้องการจัดการคือการนอนหลับ :

sleep - ตัวจับเวลา sleep ของระบบ (ค่าเป็นนาทีหรือ 0 เพื่อปิดใช้งาน)

ดังนั้นเราสามารถใช้คำสั่งต่อไปนี้:

sudo pmset sleep 25      # go to sleep after 25 minutes
sudo pmset sleep 0       # disable sleep

ตอนนี้เราต้องเรียกคำสั่งเหล่านี้หลังจากเข้าสู่ระบบและ logut ถ้าฉันจำสิ่งนี้ถูกต้อง Bash เป็นเชลล์เริ่มต้นสำหรับ Mac OS X ซึ่งนำไฟล์เหล่านี้มาให้เรา:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bash_logout
          The individual login shell cleanup file, executed when a login shell exits

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

ปัญหาสุดท้ายในการแก้ไขคือการแจ้งรหัสผ่านของ sudo ในการให้สิทธิ์แก่ผู้ใช้ของคุณในการเรียกใช้ pmset โดยไม่มีรหัสผ่านให้แก้ไข / etc / sudoers ด้วย sudoedit คุณต้องใช้NOPASSWDแท็ก ถ้านี่เป็นของใหม่สำหรับคุณมีลักษณะที่เป็นsudoers คู่มือ


1
วิธีนี้จะใช้งานได้ไหมถ้าการเชื่อมต่อ ssh เป็นเพียงการเมาท์ sshfs?
Stefan

1
ฉันไม่แน่ใจ แต่ฉันไม่คิดว่า sshfs จะเปิดเชลล์ล็อกอินดังนั้นสิ่งนี้จะไม่ทำงานกับ sshfs
echox

9

สิ่งนี้ทำให้ฉันสามารถใช้ mac ของฉันผ่าน SSH ไม่ว่าจะเกิดอะไรขึ้นตราบใดที่ mac เชื่อมต่อกับแหล่งพลังงาน

ค่ากำหนดของระบบ, ประหยัดพลังงาน, ป้องกันไม่ให้คอมพิวเตอร์เข้าสู่โหมดสลีปโดยอัตโนมัติเมื่อปิดจอแสดงผล

ทุกอย่างปิดตัวลงเมื่อ mac ดับแหล่งพลังงานดังนั้นคุณไม่ต้องกังวลเรื่องอายุการใช้งานแบตเตอรี่


1
ตัวเลือกนี้ไม่มีประโยชน์ใน macOS Sierra iMac ของฉันเข้าสู่โหมดสลีโดยไม่คำนึงถึงการตั้งค่านี้ตื่นในการเข้าถึง SSH แล้วนอนทันทีหลังจากออกจากระบบ SSH มันน่ารำคาญจริงๆ
บรูโน่ฟิลิเป้

ในที่สุดคำตอบนี้ก็แก้ปัญหาของฉันหลังจากเล่นซอด้วย ~ / .ssh / config หลายชั่วโมงใน Mojave iMac
n1000

6

ยูทิลิตี้ pmset ในตัวของ OS X มีการตั้งค่าที่อาจทำสิ่งที่คุณต้องการ ตรวจสอบpmsetmanpage เพื่อดูการttyskeepawakeตั้งค่าและคำอธิบายเพิ่มเติม

คำสั่งต่อไปนี้อาจจะทำสิ่งที่คุณต้องการ:

sudo pmset -c ttyskeepawake 1

การ-cตั้งค่าสถานะทำให้การตั้งค่านี้ใช้งานได้เฉพาะเมื่อคอมพิวเตอร์ทำงานโดยใช้ไฟ AC (ซึ่งต่างจากแบตเตอรี่หรือพลังงานของ UPS) และttyskeepawake 1ป้องกันไม่ให้คอมพิวเตอร์เข้าสู่โหมดสลีปในระหว่างเซสชัน tty ที่ใช้งานอยู่ มันจะยอมให้โหมดสลีปหากเซสชันไม่ได้ใช้งานนานกว่าตัวตั้งเวลาปิดเครื่อง แต่ถ้าเป็นปัญหาอาจไม่ควรตั้งค่าคอมพิวเตอร์ให้เข้าสู่โหมดสลีปเลย


6

ในการใช้ SSH เพื่อเปิดเชลล์บนเครื่อง OSX ระยะไกลและป้องกันไม่ให้สลีปในช่วงระยะเวลาของเซสชัน SSH:

$ ssh -t me@mymacbook caffeinate -i bash

5

ตั้งแต่ Mac OS X 10.8 คุณควรใช้caffeinate(8)คำสั่ง

ลองcaffeinate -s ssh server.example.comดู


9
OP พยายามป้องกันไม่ให้Mac ระยะไกล (เช่นเซิร์ฟเวอร์ ssh) เข้าสู่โหมดสลีป ถ้าฉันเข้าใจผิดตัวอย่างของคุณจะป้องกันการสลีปบนเทอร์มินัลของลูกค้าเท่านั้น
โอเว่

3

ฉันเพิ่มสคริปต์ต่อไปนี้ใน .bash_profile

if expr "$(ps -o comm= $PPID)" : '^sshd:' > /dev/null; then
  caffeinate -s $SHELL --login
  exit $?
fi

หากกระบวนการเป็นชายด์โดยตรงของ ssh daemon ให้รันเชลล์เดียวกันผ่านคำสั่งcaffeinate (8)เพื่อป้องกันไม่ให้ระบบหลับระหว่างการดำเนินการ ssh


2

การค้นหาเว็บสำหรับMac ป้องกันการสลีปเกิดขึ้นพร้อมกับข้อมูลที่ดีมากมายเกี่ยวกับสาธารณูปโภคและลูกเล่นที่คุณสามารถใช้ได้

อย่างไรก็ตามในสถานการณ์ของคุณฉันสงสัยว่าสิ่งที่คุณต้องการจะทำคือการแยกเซสชัน ssh ที่รันโปรแกรมบรรทัดคำสั่งที่ง่ายมากที่ป้องกันไม่ให้ Mac เข้าสู่โหมดสลีป Apple ให้รหัสต้นฉบับที่สมบูรณ์ในQ&A ทางเทคนิค 1160: การป้องกันการสลีป (น่าเสียดายที่หน้านี้เสียบนไซต์ของ Apple ในปัจจุบัน แต่คุณสามารถดึงสำเนาจากแคชของ Google)

ฉันไม่ได้ทดสอบเพื่อดูว่าโปรแกรมนี้สามารถทำงานได้สำเร็จจากเซสชัน ssh หรือไม่ แต่ดูเหมือนว่าจะทำได้

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

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

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