URL: https://www.overclockers.at/linux/sh-script-ctrl-c-an-screen-senden_239881/page_1 - zur Vollversion wechseln!
ich bastle mir gerade ein skript für einen service, der bei start einen screen öffnet und ein programm ausführt. bei stop soll das programm (pyload) mit ctrl-c beendet und der screen gekillt werden.
beendet das programm wie gewünscht. wie sende ich ctrl-c aus einem skript heraus an den screen?Code:[root@localhost ~]# screen -S pyload -X stuff "^C"
Was möchtest du mit pyload machen? Möglicherweise kann man es eleganter lösen als SIGTERM/SIGINT an den Prozess zu schicken.
Zwar keine Antwort auf die Frage, aber screen hat das command :kill, das den aktuellen screen löscht und alles beendet, was darin läuft. Und wenn es der letzte/einzige ist, wird wohl die ganze session beendet. Das dürfte ziemlich genau das sein, was du brauchst. Soweit ich weiß, kann man diese commands auch recht leicht von außen schicken, ich weiß allerdings nicht auswendig, wie.
ich wollte pyload als service laufen lassen. ich habe jetzt durch die doku erfahren, dass man pyload auch einfach mit --daemon starten kann, was meine ganze screen sache überflüssig macht
pyload -q oder --quit ist natürlich die elegantere lösung, wusste ich aber vorher nicht
den kill command habe ich versucht, aber der hat gar nichts gemacht. weis nicht warum, ist in der zeile ein fehler?
Code:screen -S pyload -X kill
Mit passender PID kannst du mit
das SIGINT (Signal, welches Ctrl-C schickt) an den Prozess schicken. Ob du das an screen oder direkt an pyload schickst ist dann deine Entscheidung.Code:kill -INT <PID>

das problem an
ist dass ich die PID eben wissen muss. das habe ich auch versucht, aber nicht hinbekommen (linuxnoob oléCode:kill -INT <PID>
)Für die Zukunft:
Müsste dir die PID anzeigen und mitCode:ps -A | grep pyload
sollte dir die PID alleine angezeigt werden.Code:ps -A | grep pyload | cut -d ' ' -f2
thx!
Zitat von LukasCode:ps -A | grep pyloadCode:ps -A | grep pyload | cut -d ' ' -f2
Code:$ whatis pgrep pgrep (1) - look up or signal processes based on name and other attributes
Haha mmd 
Zitat von COLOSSUShttps://www.youtube.com/watch?v=xoMgnJDXd3kCode:$ whatis pgrep pgrep (1) - look up or signal processes based on name and other attributes


Warum alles so kompliziert, wenns "killall" gibt?
man kann sichs ganz ganz einfach machen, oder man kann was lernen 
Wer PIDs nicht nur listen, sondern auch Signale an sie senden will, kann sich an pgrep(1)s unfreundlicheren Bruder, pkill(1), wenden.
Ich mag pkill, da muß man nicht soviel denken, einfach Mal schießen und hoffen daß man nicht zuviel erwischt. 
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025