Sám o sobě asi bash (java?) /proc nepotřebuje, ale /proc je zkratka obraz informaci o procesech v textovým formátu proto, že je pak možný tyto informace o procesech snadno parsovat ve skriptovacích jazycích (perl, shell atd atd). Není pak nutný "bindovat" a volat core C funkce z nějakých knihoven (krapet složitější než naparsovat krátkej textovej soubor a regexpem tam něco na jednom řádku vyhledat a vzít hodnotu). Ovšem další nástroje se v tom /proc adresáři hrabou a čtou ho - stejně jako ta uvedená funkce...
pf > Mam na zacatek takovy trivialni dotaz: k cemu slouzi procfs a fdescfs > napriklad pro Bash a OpenJDK? Oboje maji v pkg-message napsano, ze se ma > primountovat fdescfs a u OpenJDK je navic i procfs. > > Nikde na serverech jsem nikdy nemountoval ani procfs ani fdescfs a jak java, > tak bash se tam pouziva. > > V manualu k procfs se dokonce pise: > It is normally mounted on /proc, and is required for the complete operation > of programs such as ps(1) and w(1). > > O co teda prichazim, kdyz /proc nemam a ps a w pouzivam? > > Co si tak z davne minulosti okolo FreeBSD 4.x pamatuju, tak prave v procfs > bylo nekolik zavaznych bezpecnostnich chyb. > > Myslim, ze na Linuxu je /proc defaultne primountovany a bez nej by tam asi > spousta veci nefungovala, ale u FreeBSD mi nikdy neprislo, ze bych mel /proc > mountovat. > > > A ted ta slozitejsi otazka. Cele tohle jsem zacal resit proto, ze jsem si > zacal pohravat se sysutils/zrep (napsano v ksh93) a ten prave vyzaduje > /proc. > > https://github.com/bolthole/zrep/blob/master/zrep_vars#L261 > > Je tam tahle funkce, ktere asi uplne nerozumim > > #Note: it is an ERROR to call this if you already have lock > #It is binary, not recursive ownership. > zrep_get_global_lock(){ > typeset retry_count=$Z_LOCK_RETRY > typeset lockpid > > > [[ -d /proc/$$ ]] || zrep_errquit "/proc fs must be functional to use > zrep" > > ln -s /proc/$Z_GLOBAL_PID $Z_GLOBAL_LOCKFILE && return 0 > > while (( retry_count > 0 )); do > sleep 1 > ln -s /proc/$Z_GLOBAL_PID $Z_GLOBAL_LOCKFILE && return 0 > retry_count=$((retry_count-1)) > lockpid=`zrep_global_lock_pid` > if ! -d /proc/$lockpid ; then > _errprint ERROR: stale global lock file > _errprint ERROR: shut down ALL zrep instances, then > manually remove > _errprint $Z_GLOBAL_LOCKFILE > fi > > done > > print Failed to acquire global lock > return 1 > } > > > Jelikoz jsem v zrep uz delal nejake vlastni upravy, aby to fungovalo se > sudo, tak bych docela rad prepsal tuhle funkci tak, aby nepotrebovala /proc, > ale aby zustala zachovana funkcnost / spolehlivost toho zamku. > > V historii na GitHubu jsem nasel, ze se ve starsim kodu pouzival lockf > > https://github.com/bolthole/zrep/commit/2e1f06362a692e68e72d2fb104625f46513c8c58 > > ale taky ze ho kvuli nejakemu bugu odstranili > > https://github.com/bolthole/zrep/commit/bae9a5fb6f2a14a1765d5675879d7171ad805c7f > > Poradi nekdo? > > Mirek > -- > FreeBSD mailing list (users-l@freebsd.cz) > http://www.freebsd.cz/listserv/listinfo/users-l -- FreeBSD mailing list (users-l@freebsd.cz) http://www.freebsd.cz/listserv/listinfo/users-l