Portál AbcLinuxu, 10. května 2025 08:16
ps au
(když tě to odkáže na FAQ, tak tam asi bude napsáno, kde je problém, ne? co takhle si to tam přečíst? když to navíc dává jasný hint ohledně bogus -?), tak se někde ve výpisu -- kdekoli, v datu, v hlavičce výpisu, v názvu či argumentech příkazu, etc. -- vyskytuje zadaný regexp coby samostatné slovo.
jde tu neco jako "true"Ano, je to příkaz a kdybys to zkusil, tak to víš. Nejjednodušší nekonečná smyčka nicméně je
while :; do ...; done
Kdybych zkusil co?Prostě tam napsat
true
.
a vubec netusim jaka je syntaxe skriptovaciho jazyku, vubec netusim jaky jazyk se tam vlastne pouzivaBash. Určitě na Internetu najdeš spoustu příruček a návodů.
#!/bin/sh while true; do if [ $1 ] && [ `users | grep $1` ]; then echo "Je tu."; else echo "Neni tu." fi sleep 3 done
grep -w
namísto grep
, jinak to bude hledat i částečnou shodu.
Rozdíl mezi ‚uživatel je přihlášen‘ a ‚uživateli tu běží proces(y)‘ asi nemá smysl diskutovat v threadu, kde tazatel nemá jasno v základních konceptech...
true
, jmenuje se to true
. Stačilo to zkusit.
Program ps má parametry s pomlčkou a parametry bez pomlčky, jeho syntaxe je poněkud komplikovanější. Doporučuju vyhradit si na to hodinku, přečíst si man ps a zkusit si to. Rozhodně bych místo poradny začal s tím FAQ, které oni píšou.
Za třetí - script možná přibližně dělá, to co má, ale jen přibližně. Jak už tu někdo naznačil, grep z ps zachytává jen řetězce bez kontextu, takže pokud bude jméno uživatele jako parametr, pokud bude jméno procesu náhodou shodné s uživatelským jménem, tak se to chytí. Kromě toho běžící proces vůbec neznamená, že uživatel je přítomen, stačí si pustit něco ve screenu.
Možná se podívej na příkaz w
nebo who
.
Marek
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.