जवाबों:
ऐसा करने के लिए मुख्य रूप से दो दृष्टिकोण हैं:
systemd
सेवा के माध्यम से चलाते हैं ।इसलिए आपको दो फ़ाइलों की आवश्यकता है: स्क्रिप्ट और .service
फ़ाइल (यूनिट कॉन्फ़िगरेशन फ़ाइल)।
सुनिश्चित करें कि आपकी स्क्रिप्ट निष्पादन योग्य है और पहली पंक्ति ( शेलबैंग ) है #!/bin/sh
। फिर .service
फ़ाइल को बनाएं /etc/systemd/system
(एक सादा पाठ फ़ाइल, चलो इसे कॉल करें vgaoff.service
)।
उदाहरण के लिए:
/usr/bin/vgaoff
/etc/systemd/system/vgaoff.service
अब, यूनिट फ़ाइल को संपादित करें। इसकी सामग्री इस बात पर निर्भर करती है कि आपकी स्क्रिप्ट कैसे काम करती है:
अगर vgaoff
बस gpu से शक्तियां, उदाहरण के लिए:
exec blah-blah pwrOFF etc
तब की सामग्री vgaoff.service
होनी चाहिए:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
यदि vgaoff
जीपीयू को बंद करने और इसे वापस चालू करने के लिए उपयोग किया जाता है, जैसे:
start() {
exec blah-blah pwrOFF etc
}
stop() {
exec blah-blah pwrON etc
}
case $1 in
start|stop) "$1" ;;
esac
तब की सामग्री vgaoff.service
होनी चाहिए:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff start
ExecStop=/usr/bin/vgaoff stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
बिजली बंद करने के लिए:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
[Install]
WantedBy=multi-user.target
बिजली बंद और चालू करने के लिए:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
ExecStop=/bin/sh -c "echo ON > /whatever/vga_pwr_gadget/switch"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
एक बार जब आप फ़ाइलों के साथ कर लेते हैं, तो सेवा को सक्षम करें:
systemctl enable vgaoff.service
यह अगले बूट पर स्वचालित रूप से शुरू हो जाएगा। आप सक्षम भी कर सकते हैं और एक बार में सेवा शुरू कर सकते हैं
systemctl enable --now vgaoff.service
के रूप में systemd v.220
(पुराने सेटअप पर आपको इसे मैन्युअल रूप से शुरू करना होगा)।
अधिक जानकारी के लिए systemd.service
मैनुअल पेज देखें ।
समस्या निवारण ।
यहां शुरू करें:
किसी systemd
सेवा का पूरा लॉग कैसे देखें ?
systemd
सेवा निकास कोड और स्थिति सूचना स्पष्टीकरण
echo SOMETHING > /some/file
क्या (या किसी अन्य आदेश के रूप में) यह उनके सिस्टम पर सामान चलाने के प्रयास से पहले सीएलआई की मूल बातें से परिचित होना चाहिए। एक तरफ, FYI करें, पढ़ें कि लैपटॉप के कई मॉडलों पर dGPU को कैसे स्विच किया जाए, देखें कि क्या आपके द्वारा उपयोग किए जाने वाले कमांड को आपके सुझाव जैसी किसी चीज़ से बदला जा सकता है। इसके अलावा, मूल फ़ाइल को पुनर्स्थापित करने के लिए आप आमतौर पर इसके स्वामित्व वाले पैकेज को पुनर्स्थापित करते हैं।