जब वे दुर्घटना करते हैं या दुर्घटनाग्रस्त होने वाले होते हैं, तो शराब की प्रक्रियाओं को कैसे मारना है?


15

कभी-कभी ऐसा होता है कि वाइन एप्लिकेशन क्रैश हो जाता है (सिस्टम को धीमा कर देता है और इसे लगभग अनुपयोगी बना देता है)। ज्यादातर मामलों में मैं इस कार्यक्रम को मारने में सक्षम हूं xkill, लेकिन कुछ समय बाद मुझे फिर से शुरू करना पड़ा क्योंकि उबंटू ने बहुत अच्छी तरह से जवाब नहीं दिया (केवल एक चीज जो काम करती है ALT+ F2, लॉन्चर; xkillनहीं है)। मैं उपयोग करने के लिए कोशिश की है wineboot -rया -fपर वे बहुत अच्छी तरह से काम करने के लिए नहीं है .. अगर कुछ स्पष्ट नहीं है, मुझे पता है कि मैं बेहतर समझाने की कोशिश देंगे :)

जवाबों:


13
killall nameofexefile.exe

बस लिनक्स प्रक्रियाओं की तरह


क्या यह सिर्फ शराब के लिए या लिनक्स में चलने वाली सभी प्रक्रिया के लिए है?
१३

यह किसी भी प्रक्रिया को मार देगा, खिड़कियां शराब के माध्यम से, या
लिनेक्स

1
तो wineserver -k सभी वाइन प्रक्रियाओं को मार डालेगा ... यह मेरा मतलब है ... मैं हत्यारे <file> .exe का उपयोग नहीं करता हूं क्योंकि मुझे अक्सर फ़ाइल का सटीक नाम नहीं पता (और जब सिस्टम पागल हो जाता है मुझे किसी भी हाल में पता नहीं चलेगा)
हेडन

आह ठीक है तो उस स्थिति में wineserver -k शायद काम करेगा। बस सावधान रहें कि आपके पास कोई अन्य वाइन प्रक्रिया खुली नहीं है, जिसमें प्लेऑनलाइन और क्रॉसओवर में भी कार्यक्रम शामिल हैं।
कॉनर रेन

34

आप सुरक्षित रूप से या तो ALT + F2 या टर्मिनल के माध्यम से शराब सत्र को मार सकते हैं

wineserver -k

यदि यह वास्तव में बंद नहीं करना चाहता है तो आप इसके माध्यम से बाध्य कर सकते हैं

wineserver -k9

4

खैर, एक शराब प्रोग्रामर के रूप में, मैं अक्सर पूरी लानत-मलामत करूंगा, इसलिए मैं अपनी सुपर स्पेशल किलविन स्क्रिप्ट का उपयोग करता हूं। यह एक कठिन मौत है ( wineserver -kइसे करने का अच्छा तरीका और हमेशा पसंद किया जाता है)।

#!/bin/bash

wine_cellar="${HOME}/.local/share/wine"

if (($#)); then
    if [[ -e "${wine_cellar}/$1" ]]; then
        WINEPREFIX="${wine_cellar}/$1"
        shift
    elif [[ "${1:0:1}" != "-" ]]; then
        echo "ERROR: Didn't understand argument '$1'?" >&2;
        exit 1
    fi
fi

if ((${#WINEPREFIX})); then
    pids=$(
        grep -l "WINEPREFIX=${WINEPREFIX}$" $(
            ls -l /proc/*/exe 2>/dev/null |
            grep -E 'wine(64)?-preloader|wineserver' |
            perl -pe 's;^.*/proc/(\d+)/exe.*$;/proc/$1/environ;g;'
        ) 2> /dev/null |
        perl -pe 's;^/proc/(\d+)/environ.*$;$1;g;'
    )
else
    pids=$(
        ls -l /proc/*/exe 2>/dev/null |
        grep -E 'wine(64)?-preloader|wineserver' |
        perl -pe 's;^.*/proc/(\d+)/exe.*$;$1;g;'
    )
fi

if ((${#pids})); then
    set -x
    kill $* $pids
fi

यह माना जाता है कि आप वाइन उपसर्ग के तहत कर रहे हैं ~/.local/share/wine। उपयोग के उदाहरण हैं:

killwine                       # Just kill all instances of wine
killwine -9                    # Hard kill them all
killwine lotro                 # Only kill wine under ${HOME}/.local/share/wine/lotro
killwine -INT lotro            # Same as above, but use SIGINT
WINEPREFIX=/tmp/crap killwine  # Kill only the instance under /tmp/crap
sudo reboot                    # Pretend you're running windows.

मुझे नहीं पता, लेकिन मुझे नहीं लगता कि आप अक्सर एक सामान्य या यहां तक ​​कि सामान्य + मंचन पर स्मृति में लटकाए गए विभिन्न प्रक्रियाओं के साथ समाप्त हो जाएंगे (इस स्क्रिप्ट का क्या ख्याल है), लेकिन मैं इसकी वजह से काफी कुछ करता हूं सर्वर और ntdll हैकिंग।

EDIT: यह स्क्रिप्ट केवल लिनक्स-आधारित OS पर काम करेगी और यह मान लेती है कि खरीद फाइल सिस्टम / खरीद आदि पर आरूढ़ है।


एक आकर्षण की तरह काम करता है, जबकि wineserver -k या -k9 सफल नहीं हुआ।
माइकल-एडी

आह, धन्यवाद! मुझे लगता है कि मैंने इस स्क्रिप्ट की अपनी प्रतिलिपि खो दी है और अब मेरे पास फिर से है! मुझे यह उल्लेख करना चाहिए कि यह केवल लिनक्स-आधारित OS पर काम करेगा, क्योंकि यह / proc के माध्यम से खोदता है।
डैनियल सैंटोस

2

मेरा संस्करण:

ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | perl -pe 's;^.*/proc/(\d+)/exe.*$;$1;g;' | xargs -n 1 kill

यह सभी शराब प्रक्रियाओं को मारता है। इस पोस्ट के लिए धन्यवाद /ubuntu//a/732320/605355


योग्य, यह मेरी स्क्रिप्ट से एक झलकी है! :) उन्होंने बस इसे बैश सब-शेल के बजाय पाइप में बदल दिया - यह अच्छा है क्योंकि यह / बिन / श के साथ भी काम करेगा। मेरे पास अभी भी कुछ प्रक्रियाएँ नहीं हैं, हालांकि, जब वे प्रक्रिया को खत्म करने से पहले लटक जाते हैं, तो ntdll में init का सामान भर लेते हैं। हो सकता है कि मुझे अपनी स्क्रिप्ट, या इसके कुछ अवतार को मेनलाइन में प्रस्तुत करने की कोशिश करनी चाहिए। संपादित करें: ओह, मैं देख रहा हूं, यह आपका संशोधित संस्करण है :)
डैनियल सैंटोस

1

मैं बस उसी समस्या के बारे में था। टर्मिनल में इस कमांड ने मेरी मदद की। Ctrl + Alt + t दबाएं और फिर निम्नलिखित लिखें:
ps -x | grep "Your program name" | awk '{print $1}' | xargs kill

आपके प्रोग्राम का नाम बिना उद्धरण के लिखा जाना चाहिए , इससे मुझे oblivion.exe को हल करने में मदद मिली।
ps -x | grep Oblivion | awk '{print $1}' | xargs kill

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.