Linux Forum Schweiz
Alles rund um Linux

Startseite » Einstieg in die Welt von Linux und OpenSource » Interessierte und Neueinsteiger: Fragen zum Thema Linux und der OpenSource-Welt » Prozesse stoppen
Prozesse stoppen [Beitrag #2518] Do, 08 Oktober 2015 08:50 Zum nächsten Beitrag gehen
JMohren ist gerade offline  JMohren
Beiträge: 5
Registriert: Oktober 2015
Junior Member
Hallo zusammen

Ich habe folgendes Problem. Ich möchte innerhalb eines Skripts Prozesse nach einem frei definierbaren Prozessnamen stoppen. Das klapp auch ziemlich gut mit

> kill -TERM `ps -ef | grep -i $1 | grep -v grep | awk '{print $2}'`

Jetzt laufen die Prozesse aber unter einem anderen Account. Ich hätte also gerne die Möglichkeit, mit su <account> -c <command> das Kill-Kommando abzusetzen. Mit den ganzen zu interpretierenden Quotes und Backquotes bekomme ich das jedich nicht hin.

Hat jemand eine Idee, wie ich das hinbekommen kann?

Viele Dank im Voraus
Viele Grüsse
Jörg
Aw: Prozesse stoppen [Beitrag #2519 ist eine Antwort auf Beitrag #2518] Do, 08 Oktober 2015 09:45 Zum vorherigen Beitrag gehenZum nächsten Beitrag gehen
B-52 ist gerade offline  B-52
Beiträge: 218
Registriert: August 2010
Ort: Bern
Senior Member
JMohren schrieb am Do, 08 Oktober 2015 08:50

Jetzt laufen die Prozesse aber unter einem anderen Account.

unter welchem denn genau?
mit top kannst Du laufende Prozesse (und dessen Besitzer) analysieren. Also:
yuna@supertux:~$ top | grep systemd
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  176772   5356   3108 S   0.0  0.1   0:00.85 systemd


zudem scheint Dein Kommando nicht korrekt aufgebaut zu sein. Hast Du das schon versucht:
ps aux | grep -ie "SCRIPTNAME" | awk '{print $2}' | xargs kill -9


LG B-52


meine Distribution: Debian Bullseye minimal (vServer)

[Aktualisiert am: Do, 08 Oktober 2015 09:54]

Den Beitrag einem Moderator melden

Aw: Prozesse stoppen [Beitrag #2520 ist eine Antwort auf Beitrag #2519] Do, 08 Oktober 2015 11:25 Zum vorherigen Beitrag gehenZum nächsten Beitrag gehen
JMohren ist gerade offline  JMohren
Beiträge: 5
Registriert: Oktober 2015
Junior Member
Hallo B-52

Die Prozesse werden gemäss Kundenwunsch unter einem dedizierten Account gestartet. Sicher könnte ich mich auch unter diesem einloggen, um den Stop durchzuführen; wesentlich einfacher wäre es aber, sie unter unserem normalen User-Account zu stoppen (es ist klar, dass dann das Passwort des Accounts abgefragt wird).

Mein Kommando selber arbeitet einwandfrei; ohne su-Kommando kann ich es ausführen (unter root oder dem Account, unter dem die
Prozesse laufen). Das Problem tritt erst mit dem vorgestellten su -c auf.

Deine Variante funktioniert auch, aber wenn ich den Befehl mit -c an su übergebe, funktioniert es nicht.

Also: su <procuser> -c "kill -TERM `ps -ef | grep -i $1 | grep -v grep | awk '{print $2}'`"
und su <procuser> -c "ps aux | grep -ie "SCRIPTNAME" | awk '{print $2}' | xargs kill -TERM"

funktionieren beide nicht

Viele Grüsse
Jörg
Aw: Prozesse stoppen [Beitrag #2521 ist eine Antwort auf Beitrag #2520] Do, 08 Oktober 2015 14:04 Zum vorherigen Beitrag gehenZum nächsten Beitrag gehen
B-52 ist gerade offline  B-52
Beiträge: 218
Registriert: August 2010
Ort: Bern
Senior Member
JMohren schrieb am Do, 08 Oktober 2015 11:25
Hallo B-52
Die Prozesse werden gemäss Kundenwunsch unter einem dedizierten Account gestartet. Sicher könnte ich mich auch unter diesem einloggen, um den Stop durchzuführen; wesentlich einfacher wäre es aber, sie unter unserem normalen User-Account zu stoppen (es ist klar, dass dann das Passwort des Accounts abgefragt wird).

hmm...

su -c verlangt doch root-Rechte unter
less /etc/group
root:x:0:
(...)
bob:x:1000:


Absonst kann das ja gar nicht funktionieren, wenn Du ein su -c voraussetzt!

LG B-52


meine Distribution: Debian Bullseye minimal (vServer)
Aw: Prozesse stoppen [Beitrag #2523 ist eine Antwort auf Beitrag #2521] Do, 08 Oktober 2015 16:24 Zum vorherigen Beitrag gehen
JMohren ist gerade offline  JMohren
Beiträge: 5
Registriert: Oktober 2015
Junior Member
Hallo B-52

Da hatte ich mich vielleicht unklar ausgedrückt. Ich will nicht einfach su -c <command> machen, sondern su <procuser> -c <command>. Es ist klar, dass dann das Passwort von <procuser> abgefragt wird (wenn ich nicht gerade root bin), aber das ist ok. Es geht nur darum, dass das Kommando von der Support-Account abgesetzt werden kann, ohne dass er sich extra unter <procuser> einloggen muss. Was ich also machen will, ist

> su <procuser> -c "kill -TERM `ps -ef | grep -i $1 | grep -v grep | awk '{print $2}'`"

was aber leider so nicht funktioniert. Meine Frage, wie kann ich das anders umsetzen?

Viele Grüsse
Jörg

Vorheriges Thema: Braucht es einen CCleaner?
Nächstes Thema: Portrange in RPC-Schnittstelle
Gehe zum Forum:
  


aktuelle Zeit: Di Apr 23 09:38:48 CEST 2024

Insgesamt benötigte Zeit, um die Seite zu erzeugen: 0.00296 Sekunden