Vraag het doden van het hoofdproces voortgebracht door een at-commando


Gebruik makend van at, Ik probeer een opdracht in te stellen die me op een bepaald moment een herinnering stuurt en me steeds opnieuw herinnert. Maar ik wil het kunnen doden at commando zodra ik het mezelf heb herinnerd. Ik kan de PID echter niet vinden voor de at commando dat ik nodig heb om de herinnering te doden. Het script dat ik gebruik is

bij $ thisTime -f $ thisFile

waar $ thisFile er zo uitziet

#!/bin/bash
sleepTime=20
while [ 1 > 0 ];
    do
        notify-send "word"
        sleep $sleepTime
    done

Het commando werkt prima, maar het blijft het notify-osd commando op de opgegeven intervallen, voor altijd.

Wanneer ik ren ps auxw Ik zou verwachten een lijn te vinden die de at opdracht die ik heb uitgevoerd om deze herinnering te genereren, maar er komt niets uit.

Ik heb ook geprobeerd om te rennen atq  en hen atrm om de nummers te verwijderen atq teruggekeerd, maar ik kan het meestercommando nog steeds niet doden en blijf doorgaan notify-send berichten totdat ik uitlog.

Kan iemand me alsjeblieft vertellen hoe ik de pid kan vinden voor de at opdracht? Heel erg bedankt!


0
2017-12-07 19:59


oorsprong




antwoorden:


De opdracht at wordt beëindigd zodra u de taak "at" maakt. De taak wordt geïnitieerd door de at daemon (atd), die je niet wilt doden of anders zal het niet spawnen.

Je wilt eigenlijk het bash-proces dat $ thisFile draait (zoek naar bash $ thisFile in de ps-uitvoer)

U kunt het script ook wijzigen door de bijbehorende PID op te nemen in het bericht dat wordt verzonden: notify-send "$$: word", dus je weet meteen welk proces je moet doden


2
2017-12-07 20:10



Ik kon het bash-proces met $ thisFile niet vinden, maar toevoegen $$ aan de boodschap gaf me precies wat ik nodig had, bedankt! - Leo Simon