Index: head/GIDs =================================================================== --- head/GIDs (revision 491595) +++ head/GIDs (revision 491596) @@ -1,945 +1,945 @@ # $FreeBSD$ # Please keep this file sorted by GID! # Please pick an empty slot when available and also consider base values from # /usr/src/etc/group daemon:*:1: operator:*:5:amanda mail:*:6:postfix,clamav ftp:*:14: smmsp:*:25: video:*:44: bind:*:53: rdfdb:*:55: spamd:*:58: unbound:*:59: cyrus:*:60: proxy:*:62: authpf:*:63: uucp:*:66: xten:*:67: dialer:*:68:aprsd network:*:69: pgsql:*:70: ircd:*:72: ircservices:*:73: simscan:*:74: hybserv:*:76: audit:*:77: virtuoso:*:79: www:*:80: qnofiles:*:81: qmail:*:82: mysql:*:88: vchkpw:*:89: firebird:*:90: mailman:*:91: gdm:*:92: jabber:*:93: p4admin:*:94: interch:*:95: squeuer:*:96: mud:*:97: msql:*:98: rscsi:*:99: squid:*:100: quagga:*:101: ganglia:*:102: sgeadmin:*:103: slimserv:*:104: dnetc:*:105: clamav:*:106: cacti:*:107: webkit:*:108: quickml:*:109: vscan:*:110: fido:*:111: dcc:*:112: amavis:*:113: dhis:*:114: _symon:*:115: u2f:*:116: smokeping:*:117: ircproxyd:*:118: mythtv:*:119: pdns:*:120: otrs:*:121: zabbix:*:122: ntpd:*:123: fetchmail:*:124: postfix:*:125: maildrop:*:126: nav:*:127: sd-agent:*:128: vlock:*:129: _bgpd:*:130: _ospfd:*:131: _spamd:*:132: freeradius:*:133: undernet:*:134: rabbitmq:*:135: dhcpd:*:136: mpd:*:137: wolfpack:*:138: shellinabox:*:139: amanda:*:140: synapse:*:141: ladvd:*:142: dovecot:*:143: dovenull:*:144: webcamd:*:145: ventrilo:*:146: kdm:*:147: ipv6mon:*:148: avenger:*:149: cbsd:*:150: # free: 151 frrvty:*:152:frr rbldns:*:153: trircd:*:154: xorp:*:155: monetdb:*:156: barman:*:157: pootle:*:158: nocat:*:159: _ypldap:*:160: solr:*:161: octoprint:*:162: _iked:*:163: lightdm:*:164: uwsgi:*:165: yule:*:166: ceph:*:167: frr:*:168: acme:*:169: tile38:*:170: sfs:*:171: agk:*:172: polipo:*:173: flowtools:*:174: twms:*:175: mlvpn:*:176: _mdnsd:*:177: otpw:*:178: gdnsd:*:179: rt:*:180: nagios:*:181: noc:*:182: icinga:*:183: dnscache:*:184: tinydns:*:185: dnslog:*:186: swift:*:187: netxms:*:188: leofs:*:189: keystone:*:190: glance:*:191: moinmoin:*:192: cups:*:193: saned:*:194: radns:*:195: nova:*:196: dq:*:197: horizon:*:198: mcserver:*:199: sympa:*:200: privoxy:*:201: dspam:*:202: cinder:*:203: yate:*:204: gnugk:*:205: gini:*:206: _mixminion:*:207: _dnsdist:*:208: shoutcast:*:210: git:*:211: hg:*:212: drizzle:*:213: kyototycoon:*:214: opendnssec:*:215: nsd:*:216: anvil:*:217: zap:*:218: sddm:*:219: bs:*:220: opensips:*:221: rtpproxy:*:222: mqttwarn:*:223: payara:*:224: postgrey:*:225: sqlgrey:*:226: _hfm:*:227: osrm:*:228: kismet:*:229: carbon:*:230: foundationdb:*:231: archiva:*:232: _ntp:*:233: kafka:*:234: openhab:*:235: # free: 236 # free: 237 # free: 238 # free: 239 aprsd:*:240: tnc:*:241: prosody:*:242: # free: 243 mastodon:*:244: # free: 245 # free: 246 fcron:*:247: # free: 248 # free: 249 # free: 250 # free: 251 # free: 252 _adsuck:*:253: # free: 254 _i2pd:*:255: _tor:*:256: _smtpd:*:257: _smtpq:*:258: # free: 259 meta1s:*:260: meta1q:*:261: meta1c:*:262:meta1s meta1m:*:263:meta1s,meta1q meta1:*:264: # free: 265 # free: 266 # free: 267 # free: 268 # free: 269 # free: 270 # free: 271 # free: 272 # free: 273 # free: 274 haclient:*:275: frontbase:*:276: # free: 277 rtg:*:278: mrtg:*:279: xymon:*:280: prelude:*:281: spread:*:282: devmon:*:283: vnstat:*:284: exaddos:*:285:exaddos rancid:*:286: # free: 287 ntopng:*:288: # free: 289 # free: 290 # free: 291 # free: 292 # free: 293 # free: 294 # free: 295 # free: 296 # free: 297 # free: 298 # free: 299 backuppc:*:300: # free: 301 netdata:*:302: # free: 303 # free: 304 # free: 305 # free: 306 # free: 307 # free: 308 # free: 309 # free: 310 # free: 311 _sphinx:*:312: _fastdfs:*:313: # free: 314 # free: 315 # free: 316 # free: 317 # free: 318 # free: 319 # free: 320 # free: 321 # free: 322 # free: 323 # free: 324 dkfilter:*:325: smfs:*:326: # free: 327 # free: 328 # free: 329 orthanc:*:330: # free: 331 # free: 332 # free: 333 # free: 334 # free: 335 # free: 336 daapd:*:337: murmur:*:338: # free: 339 wildfire:*:340: stunnel:*:341: openfire:*:342: # free: 343 # free: 344 # free: 345 # free: 346 # free: 347 # free: 348 # free: 349 _sabnzbd:*:350: sonarr:*:351: radarr:*:352: _iodined:*:353: jackett:*:354: -# free: 355 +nzbhydra2:*:355: # free: 356 # free: 357 # free: 358 # free: 359 # free: 360 httptunnel:*:361: # free: 362 # free: 363 # free: 364 # free: 365 # free: 366 # free: 367 # free: 368 # free: 369 # free: 370 # free: 371 # free: 372 # free: 373 # free: 374 # free: 375 # free: 376 # free: 377 # free: 378 # free: 379 # free: 380 # free: 381 # free: 382 # free: 383 # free: 384 # free: 385 # free: 386 # free: 387 # free: 388 ldap:*:389: # free: 390 # free: 391 # free: 392 # free: 393 # free: 394 # free: 395 # free: 396 # free: 397 tiarra:*:398: # free: 399 # free: 400 # free: 401 # free: 402 # free: 403 # free: 404 # free: 405 # free: 406 # free: 407 # free: 408 # free: 409 # free: 410 uhub:*:411: # free: 412 # free: 413 # free: 414 # free: 415 # free: 416 # free: 417 # free: 418 # free: 419 oxidized:*:420: # free: 421 # free: 422 # free: 423 # free: 424 # free: 425 drweb:*:426: # free: 427 # free: 428 varnish:*:429: # free: 430 # free: 431 # free: 432 # free: 433 # free: 434 # free: 435 # free: 436 # free: 437 # free: 438 # free: 439 # free: 440 # free: 441 quasselcore:*:442: # free: 443 callweaver:*:444: # free: 445 # free: 446 # free: 447 # free: 448 # free: 449 ecartis:*:450: # free: 451 # free: 452 # free: 453 # free: 454 # free: 455 # free: 456 # free: 457 # free: 458 # free: 459 # free: 460 # free: 461 # free: 462 # free: 463 # free: 464 courier:*:465: condor:*:466: netmon:*:467: slurm:*:468: consul:*:469: serf:*:470: vault:*:471: nomad:*:472: minio:*:473: gitlab-runner:*:474: traefik:*:475: gitlab-pages:*:476: fiche:*:477: prometheus:*:478: alertmanager:*:479: # free: 480 # free: 481 # free: 482 # free: 483 # free: 484 # free: 485 # free: 486 # free: 487 # free: 488 # free: 489 # free: 490 # free: 491 # free: 492 # free: 493 # free: 494 # free: 495 # free: 496 # free: 497 # free: 498 # free: 499 # free: 500 # free: 501 birdvty:*:502: # free: 503 # free: 504 _bbstored:*:505: radmind:*:506: skkserv:*:507: # free: 508 # free: 509 # free: 510 # free: 511 pwhois:*:512: # free: 513 # free: 514 # free: 515 # free: 516 # free: 517 # free: 518 # free: 519 libvirtdbus:*:520: davmail:*:521: nullmail:*:522: freevo:*:523: # free: 524 dkimproxy:*:525: # free: 526 # free: 527 # free: 528 # free: 529 # free: 530 # free: 531 # free: 532 # free: 533 pgbouncer:*:534: redis:*:535: # free: 536 # free: 537 # free: 538 # free: 539 # free: 540 # free: 541 _flowd:*:542: ejabberd:*:543: # free: 544 # free: 545 # free: 546 # free: 547 # free: 548 # free: 549 # free: 550 # free: 551 kresd:*:552: knot:*:553: qtss:*:554: ircdru:*:555: messagebus:*:556: pulse-rt:*:557: avahi:*:558: tacacs:*:559: haldaemon:*:560: distcc:*:561: polkit:*:562: pulse:*:563: pulse-access:*:564: polkitd:*:565: # free: 566 # free: 567 # free: 568 # free: 569 # free: 570 # free: 571 # free: 572 # free: 573 # free: 574 nexus:*:575: # free: 576 # free: 577 # free: 578 # free: 579 # free: 580 # free: 581 # free: 582 # free: 583 # free: 584 # free: 585 # free: 586 assp:*:587: avahi-autoipd:*:588: # free: 589 # free: 590 # free: 591 # free: 592 # free: 593 # free: 594 # free: 595 # free: 596 # free: 597 # free: 598 # free: 599 _xsi:*:600: _tss:*:601: _pkcs11:*:602: _acme:*:603: # free: 604 # free: 605 # free: 606 # free: 607 # free: 608 # free: 609 freeswitch:*:610: # free: 611 # free: 612 # free: 613 # free: 614 ntpa:*:615: taskd:*:616: # free: 617 # free: 618 # free: 619 # free: 620 # free: 621 # free: 622 # free: 623 # free: 624 # free: 625 # free: 626 # free: 627 # free: 628 # free: 629 # free: 630 # free: 631 # free: 632 # free: 633 # free: 634 # free: 635 # free: 636 # free: 637 # free: 638 caldavd:*:639: # free: 640 monkeysphere:*:641: # free: 642 # free: 643 # free: 644 # free: 645 # free: 646 # free: 647 # free: 648 # free: 649 # free: 650 # free: 651 # free: 652 # free: 653 # free: 654 # free: 655 # free: 656 # free: 657 # free: 658 # free: 659 # free: 660 # free: 661 # free: 662 # free: 663 # free: 664 # free: 665 aox:*:666: riak:*:667: # free: 668 # free: 669 # free: 670 # free: 671 # free: 672 # free: 673 # free: 674 # free: 675 # free: 676 # free: 677 # free: 678 # free: 679 # free: 680 # free: 681 # free: 682 # free: 683 # free: 684 # free: 685 # free: 686 # free: 687 # free: 688 # free: 689 # free: 690 # free: 691 # free: 692 # free: 693 # free: 694 # free: 695 # free: 696 # free: 697 # free: 698 # free: 699 bnetd:*:700: fastnetmon:*:701: _sndio:*:702: # free: 703 # free: 704 # free: 705 # free: 706 # free: 707 # free: 708 # free: 709 # free: 710 # free: 711 # free: 712 # free: 713 # free: 714 # free: 715 # free: 716 bopm:*:717: # free: 718 # free: 719 # free: 720 # free: 721 # free: 722 # free: 723 # free: 724 # free: 725 # free: 726 # free: 727 # free: 728 # free: 729 # free: 730 # free: 731 # free: 732 # free: 733 # free: 734 # free: 735 # free: 736 # free: 737 # free: 738 # free: 739 # free: 740 # free: 741 # free: 742 # free: 743 # free: 744 # free: 745 # free: 746 # free: 747 # free: 748 # free: 749 # free: 750 # free: 751 # free: 752 # free: 753 # free: 754 # free: 755 # free: 756 # free: 757 # free: 758 # free: 759 # free: 760 # free: 761 # free: 762 # free: 763 # free: 764 # free: 765 # free: 766 # free: 767 # free: 768 # free: 769 postgres:*:770: cockroach:*:771: # free: 772 # free: 773 # free: 774 # free: 775 # free: 776 openxpki:*:777: litecoin:*:778: bitcoin:*:779: zetacoin:*:780: monero:*:781: # free: 782 # free: 783 # free: 784 # free: 785 # free: 786 # free: 787 # free: 788 # free: 789 # free: 790 # free: 791 # free: 792 # free: 793 # free: 794 # free: 795 # free: 796 # free: 797 # free: 798 # free: 799 clickhouse:*:800: # free: 801 # free: 802 # free: 803 # free: 804 # free: 805 # free: 806 # free: 807 # free: 808 # free: 809 # free: 810 # free: 811 foreman_proxy:*:812: hitch:*:813: puppet:*:814: uchiwa:*:815: # free: 816 rslsync:*:817: jenkins:*:818: rundeck:*:819: openacs:*:820: dotlrn:*:821: # free: 822 # free: 823 selenium:*:824: polw:*:825: statsd:*:826: # free: 827 # free: 828 # free: 829 # free: 830 # free: 831 # free: 832 # free: 833 # free: 834 # free: 835 # free: 836 # free: 837 # free: 838 # free: 839 netdisco:*:840: tcpcryptd:*:841: munin:*:842: dahdi:*:843:asterisk subsonic:*:844: # free: 845 sogod:*:846: domoticz:*:847: graylog:*:848: chronyd:*:849: qbittorrent:*:850: cassandra:*:851: # free: 852 _geodns:*:853: # free: 854 # free: 855 # free: 856 # free: 857 # free: 858 # free: 859 # free: 860 # free: 861 # free: 862 # free: 863 # free: 864 # free: 865 # free: 866 # free: 867 # free: 868 # free: 869 # free: 870 # free: 871 # free: 872 # free: 873 # free: 874 # free: 875 # free: 876 # free: 877 # free: 878 # free: 879 # free: 880 # free: 881 midpoint:*:882: ipfs-go:*:883: telegraf:*:884: tcpdump:*:885: miniflux:*:886: pdagent:*:887: vuls:*:888: mattermost:*:889: matterircd:*:890: urbackup:*:891: tautulli:*:892: logstash:*:893: arangodb:*:894: snmptt:*:895: istat:*:896: znc:*:897: ufdb:*:898: guacamole:*:899: seafile:*:900: fossy:*:901:www scanlogd:*:902: _ocserv:*:903: grafana:*:904: artifactory:*:905: opentsdb:*:906: influxd:*:907: riemann:*:908: proxy65:*:909: bacula:*:910: iserv:*:911: _sj3:*:912: _relayd:*:913: bitlbee:*:914: logcheck:*:915: ssmtp:*:916: prayer:*:917: nefu:*:918: couchdb:*:919: vboxusers:*:920: transmission:*:921: mongodb:*:922: liquidsoap:*:923: postpals:*:924: mfs:*:925: minbif:*:926: kumofs:*:927: nslcd:*:928: activemq:*:929: ifgraph:*:930: asterisk:*:931: sancp:*:932: dlna:*:933: torrus:*:934:www erlyvideo:*:935: crtmpserver:*:936: get_iplayer:*:937: vdr:*:938: noip:*:939: _tcpproxy:*:940: cego:*:941: teamspeak:*:942: dnetfold:*:943: bbs:*:944: dbxml:*:945: mediatomb:*:946: gnokii:*:947: dnrd:*:948: _lldpd:*:949: conquest:*:950: openerpd:*:951: bitten-slave:*:952: _neubot:*:953: couchpotato:*:954: hadoop:*:955: pandora:*:956: razorback:*:957: gnunet:*:958: c_icap:*:959: trytond:*:960: gearmand:*:961: zookeeper:*:962: fluentd:*:963: git_daemon:*:964: elasticsearch:*:965: ossec:*:966: # free: 967 # free: 968 kippo:*:969: colord:*:970: shibd:*:971: plex:*:972: boinc:*:973: radicale:*:974: unifi:*:975: minetest:*:976: # free: 977 _dnscrypt-proxy:*:978: ums:*:979: hbase:*:980: uvncrep:*:981: bro:*:982: syncthing:*:983: tvheadend:*:984: puppetdb:*:985: kamailio:*:986: spark:*:987: # free: 988 emby:*:989: oozie:*:990: sguil:*:991: hive:*:992: kannel:*:993: rcynic:*:994: rpkirtr:*:995: tarantool:*:996: bareos:*:997: _rmilter:*:998: ebnetd:*:999: # DO NOT USE: 1000-65532 nogroup:*:65533: nobody:*:65534: Index: head/UIDs =================================================================== --- head/UIDs (revision 491595) +++ head/UIDs (revision 491596) @@ -1,950 +1,949 @@ # $FreeBSD$ # Please keep this file sorted by UID! # Please pick an empty slot when available and also consider base values from # /usr/src/etc/master.passwd operator:*:2:5::0:0:System &:/:/usr/sbin/nologin ftp:*:14:14::0:0:Anonymous FTP:/var/ftp:/nonexistent smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologin majordom:*:54:54::0:0:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent rdfdb:*:55:55::0:0:rdfDB Daemon:/var/db/rdfdb:/bin/sh spamd:*:58:58::0:0:SpamAssassin user:/var/spool/spamd:/usr/sbin/nologin unbound:*:59:59::0:0:Unbound DNS Resolver:/nonexistent:/usr/sbin/nologin cyrus:*:60:60::0:0:the cyrus mail server:/nonexistent:/nonexistent gnats:*:61:1::0:0:GNATS database owner:/usr/local/share/gnats/gnats-db:/bin/sh proxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/nonexistent uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/nonexistent pop:*:68:6::0:0:Post Office Owner (popper):/nonexistent:/usr/sbin/nologin wnn:*:69:7::0:0:Wnn:/nonexistent:/nonexistent pgsql:*:70:70::0:0:PostgreSQL pseudo-user:/usr/local/pgsql:/bin/sh oracle:*:71:71::0:0:Oracle:/usr/local/oracle7:/usr/sbin/nologin ircd:*:72:72::0:0:IRC daemon:/nonexistent:/nonexistent ircservices:*:73:73::0:0:IRC services:/nonexistent:/nonexistent simscan:*:74:74::0:0:Simscan User:/nonexistent:/usr/sbin/nologin ifmail:*:75:66::0:0:Ifmail user:/nonexistent:/nonexistent hybserv:*:76:76::0:0:HybServ Daemon:/nonexistent:/usr/sbin/nologin auditdistd:*:78:77::0:0:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin virtuoso:*:79:79::0:0:Virtuoso Universal Server:/usr/local/virtuoso:/bin/sh www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin alias:*:81:81::0:0:QMail user:/var/qmail/alias:/nonexistent qmaild:*:82:81::0:0:QMail user:/var/qmail:/nonexistent qmaill:*:83:81::0:0:QMail user:/var/qmail:/nonexistent qmailp:*:84:81::0:0:QMail user:/var/qmail:/nonexistent qmailq:*:85:82::0:0:QMail user:/var/qmail:/nonexistent qmailr:*:86:82::0:0:QMail user:/var/qmail:/nonexistent qmails:*:87:82::0:0:QMail user:/var/qmail:/nonexistent mysql:*:88:88::0:0:MySQL Daemon:/var/db/mysql:/usr/sbin/nologin vpopmail:*:89:89::0:0:VPop Mail User:/usr/local/vpopmail:/nonexistent firebird:*:90:90::0:0:Firebird Database Administrator:/var/db/firebird:/bin/sh mailman:*:91:91::0:0:Mailman User:/usr/local/mailman:/usr/sbin/nologin gdm:*:92:92::0:0:GNOME Display Manager:/usr/local/etc/gdm/home:/usr/sbin/nologin jabber:*:93:93::0:0:Jabber Daemon:/nonexistent:/nonexistent p4admin:*:94:94::0:0:Perforce admin:/nonexistent:/usr/sbin/nologin interch:*:95:95::0:0:Interchange user:/usr/local/interchange:/usr/sbin/nologin squeuer:*:96:96::0:0:SQueuer Owner:/nonexistent:/bin/sh mud:*:97:97::0:0:MUD Owner:/nonexistent:/bin/sh msql:*:98:98::0:0:mSQL-2 pseudo-user:/var/db/msqldb:/bin/sh rscsi:*:99:99::0:0:Remote SCSI:/usr/local/rscsi:/usr/local/sbin/rscsi squid:*:100:100::0:0:squid caching-proxy pseudo user:/var/squid:/usr/sbin/nologin quagga:*:101:101::0:0:Quagga route daemon pseudo user:/var/empty:/usr/sbin/nologin ganglia:*:102:102::0:0:Ganglia User:/nonexistent:/usr/sbin/nologin sgeadmin:*:103:103::0:0:Sun Grid Engine Admin:/nonexistent:/usr/sbin/nologin slimserv:*:104:104::0:0:Slim Devices SlimServer pseudo-user:/nonexistent:/usr/sbin/nologin dnetc:*:105:105::0:0:distributed.net client and proxy pseudo-user:/nonexistent:/usr/sbin/nologin clamav:*:106:106::0:0:Clamav Antivirus:/nonexistent:/usr/sbin/nologin cacti:*:107:107::0:0:Cacti Sandbox:/nonexistent:/usr/sbin/nologin webkit:*:108:108::0:0:WebKit Default User:/usr/local/www/webkit:/bin/sh quickml:*:109:109::0:0:quickml Server:/nonexistent:/usr/sbin/nologin vscan:*:110:110::0:0:Scanning Virus Account:/var/maiad:/bin/sh fido:*:111:111::0:0:Fido System:/usr/local/fido:/bin/sh dcc:*:112:112::0:0:Distributed Checksum Clearinghouse:/nonexistent:/usr/sbin/nologin amavis:*:113:113::0:0:Amavis-stats Account:/nonexistent:/usr/sbin/nologin dhis:*:114:114::0:0:DHIS Daemon:/nonexistent:/usr/sbin/nologin _symon:*:115:115::0:0:Symon Account:/var/empty:/usr/sbin/nologin hplip:*:116:116::0:0:HPLIP Server:/nonexistent:/usr/sbin/nologin smokeping:*:117:117::0:0:SmokePing Daemon:/nonexistent:/usr/sbin/nologin ircproxyd:*:118:118::0:0:Night Light IRC Proxy:/nonexistent:/usr/sbin/nologin mythtv:*:119:119::0:0:MythTV pseudo-user:/nonexistent:/bin/sh pdns_recursor:*:120:120::0:0:pdns_recursor pseudo-user:/nonexistent:/usr/sbin/nologin otrs:*:121:121::0:0:OTRS Administrator:/usr/local/otrs:/bin/csh zabbix:*:122:122::0:0:Zabbix NMS:/nonexistent:/bin/sh ntpd:*:123:123::0:0:NTP Daemon:/var/db/ntp:/usr/sbin/nologin fetchmail:*:124:124::0:0:Fetchmail mail-retrieval daemon:/nonexistent:/usr/sbin/nologin postfix:*:125:125::0:0:Postfix Mail System:/var/spool/postfix:/usr/sbin/nologin synapse:*:126:141::0:0:Synapse Daemon:/nonexistent:/usr/sbin/nologin navcron:*:127:127::0:0:Network Administration Visualized:/usr/local/nav:/usr/sbin/nologin sd-agent:*:128:128::0:0:ServerDensity Agent:/nonexistent:/usr/sbin/nologin # free: 129 _bgpd:*:130:130::0:0:BGP Daemon:/var/empty:/usr/sbin/nologin _ospfd:*:131:131::0:0:OSPF Daemon:/var/empty:/usr/sbin/nologin _spamd:*:132:132::0:0:Spam Daemon:/var/empty:/usr/sbin/nologin freeradius:*:133:133::0:0:FreeRADIUS Daemon:/nonexistent:/usr/sbin/nologin undernet:*:134:134::0:0:Undernet ircu Daemon:/nonexistent:/usr/sbin/nologin rabbitmq:*:135:135::0:0:RabbitMQ:/var/db/rabbitmq:/usr/sbin/nologin dhcpd:*:136:136::0:0:ISC DHCP daemon:/nonexistent:/usr/sbin/nologin mpd:*:137:137::0:0:MusicPD pseudo-user:/var/mpd:/usr/sbin/nologin wolfpack:*:138:138::0:0:Wolfpack Empire Server:/usr/local/share/wolfpack:/usr/sbin/nologin shellinabox:*:139:139::0:0:Shell In A Box:/nonexistent:/usr/sbin/nologin amanda:*:140:140::0:0:Amanda Daemon:/var/db/amanda:/usr/sbin/nologin cricket:*:141:80::0:0:Cricket Monitoring User:/usr/local/cricket:/usr/sbin/nologin ladvd:*:142:142::0:0:Ladvd User:/var/empty:/usr/sbin/nologin dovecot:*:143:143::0:0:Dovecot User:/var/empty:/usr/sbin/nologin dovenull:*:144:144::0:0:Dovecot login User:/var/empty:/usr/sbin/nologin webcamd:*:145:145::0:0:Webcamd user:/var/empty:/usr/sbin/nologin ventrilo:*:146:146::0:0:& server:/usr/local/ventrilo-server:/usr/sbin/nologin kdm:*:147:147::0:0:KDE Display Manager:/nonexistent:/usr/sbin/nologin ipv6mon:*:148:148::0:0:IPv6 Address Monitoring Daemon:/nonexistent:/usr/sbin/nologin avenger:*:149:149::0:0:Mail Avenger:/var/spool/avenger:/usr/sbin/nologin cbsd:*:150:150::0:0:Cbsd user:/nonexistent:/bin/sh pop3vscan:*:151:6::0:0:POP3VScan Daemon:/var/spool/pop3vscan:/usr/sbin/nologin iog:*:152:80::0:0:iog Monitoring Owner:/usr/local/iog:/usr/sbin/nologin rbldns:*:153:153::0:0:rbldnsd pseudo-user:/nonexistent:/usr/sbin/nologin trircd:*:154:154::0:0:& user:/usr/local/etc/tr-ircd:/usr/sbin/nologin xmrig:*:155:65534::0:0:XMRig:/nonexistent:/usr/sbin/nologin monetdb:*:156:156::0:0:MonetDB user:/usr/local/monetdb5:/bin/sh barman:*:157:157::0:0:Barman user:/var/barman:/bin/sh pootle:*:158:158::0:0:Pootle User:/var/db/pootle:/usr/sbin/nologin nocat:*:159:159::0:0:NoCat Daemon:/libexec/nocat:/sbin/nologin _ypldap:*:160:160::0:0:YP Ldap unprivileged user:/var/empty:/usr/sbin/nologin solr:*:161:161::0:0:Apache Solr System:/var/db/solr:/usr/sbin/nologin octoprint:*:162:162::0:0:OctoPrint Daemon:/usr/local/octoprint:/usr/sbin/nologin _iked:*:163:163::0:0:IKEv2 Daemon:/var/empty:/usr/sbin/nologin lightdm:*:164:164::0:0:Light Display Manager:/var/lib/lightdm-data:/usr/sbin/nologin uwsgi:*:165:165::0:0:uwsgi Daemon:/nonexistent:/usr/sbin/nologin yule:*:166:166::0:0:Samhain Daemon:/nonexistent:/usr/sbin/nologin ceph:*:167:167::0:0:Ceph Daemons:/var/lib/ceph:/usr/sbin/nologin frr:*:168:168::0:0:FRRouting user:/var/empty:/usr/sbin/nologin acme:*:169:169::0:0:ACME protocol client:/var/db/acme:/bin/sh tile38:*:170:170::0:0:Tile38 User:/var/db/tile38:/usr/sbin/nologin sfs:*:171:171::0:0:Self-Certifying File System:/nonexistent:/usr/sbin/nologin agk:*:172:172::0:0:AquaGateKeeper:/nonexistent:/nonexistent polipo:*:173:173::0:0:polipo web cache:/nonexistent:/usr/sbin/nologin flowtools:*:174:174::0:0:Flow-tools collector pseudo-user:/nonexistent:/usr/sbin/nologin twms:*:175:175::0:0:tWMS pseudo-user:/nonexistent:/usr/sbin/nologin mlvpn:*:176:176::0:0:mlVPN pseudo-user:/var/run/mlvpn:/usr/sbin/nologin _mdnsd:*:177:177::0:0:Multicast DNS Daemon:/var/empty:/usr/sbin/nologin otpw:*:178:178::0:0:OTPW pseudo-user:/var/lib/otpw:/usr/sbin/nologin gdnsd:*:179:179::0:0:gDNSd pseudo-user:/nonexistent:/usr/sbin/nologin # free: 180 nagios:*:181:181::0:0:Nagios pseudo-user:/var/spool/nagios:/usr/sbin/nologin noc:*:182:182::0:0:NOC pseudo-user:/usr/local/noc:/bin/sh icinga:*:183:183::0:0:Icinga pseudo-user:/var/spool/icinga:/usr/sbin/nologin dnscache:*:184:184::0:0:dnscache pseudo-user:/nonexistent:/usr/sbin/nologin tinydns:*:185:185::0:0:tinydns pseudo-user:/nonexistent:/usr/sbin/nologin dnslog:*:186:186::0:0:dnslog pseudo-user:/nonexistent:/usr/sbin/nologin swift:*:187:187::0:0:Swift daemon pseudo-user:/nonexistent:/usr/sbin/nologin netxms:*:188:188::0:0:netxms pseudo-user:/nonexistent:/usr/sbin/nologin leofs:*:189:189::0:0:LeoFS daemons pseudo-user:/var/db/leofs:/usr/sbin/nologin keystone:*:190:190::0:0:Keystone pseudo-user:/var/lib/keystone:/usr/sbin/nologin glance:*:191:191::0:0:Glance pseudo-user:/var/lib/glance:/usr/sbin/nologin moinmoin:*:192:192::0:0:MoinMoin User:/nonexistent:/usr/sbin/nologin cups:*:193:193::0:0:Cups Owner:/nonexistent:/usr/sbin/nologin saned:*:194:194::0:0:SANE Scanner Daemon:/nonexistent:/bin/sh radns:*:195:195::0:0:radns user:/nonexistent:/usr/sbin/nologin nova:*:196:196::0:0:Nova daemon pseudo-user:/var/lib/nova:/usr/sbin/nologin dq:*:197:197::0:0:dqcache user:/nonexistent:/usr/sbin/nologin horizon:*:198:198::0:0:Horizon pseudo-user:/var/lib/horizon:/usr/sbin/nologin mcserver:*:199:199::0:0:Minecraft Server:/nonexistent:/bin/sh sympa:*:200:200::0:0:Sympa Owner:/nonexistent:/usr/sbin/nologin privoxy:*:201:201::0:0:Privoxy proxy user:/nonexistent:/usr/sbin/nologin dspam:*:202:202::0:0:Dspam:/nonexistent:/usr/sbin/nologin cinder:*:203:203::0:0:Cinder daemon pseudo-user:/var/lib/cinder:/usr/sbin/nologin yate:*:204:204::0:0:Yate:/nonexistent:/usr/sbin/nologin gnugk:*:205:205::0:0:GNU GateKeeper pseudo-user:/nonexistent:/usr/sbin/nologin gini:*:206:206::0:0:& streaming server:/var/log/gini:/usr/sbin/nologin _mixminion:*:207:207::0:0:Mixminion server:/nonexistent:/usr/sbin/nologin _dnsdist:*:208:208::0:0:dnsdist user:/nonexistent:/usr/sbin/nologin shoutcast:*:210:210::0:0:Shoutcast sandbox:/nonexistent:/bin/sh git:*:211:211::0:0:git user:/usr/local/git:/bin/sh hg:*:212:212::0:0:mercurial-server user:/usr/local/hg:/bin/sh drizzle:*:213:213::0:0:Drizzle daemon:/var/db/drizzle:/usr/sbin/nologin kyototycoon:*:214:214::0:0:kyototycoon user:/var/empty:/usr/sbin/nologin opendnssec:*:215:215::0:0:Opendnssec Pseudo User:/nonexistent:/usr/sbin/nologin nsd:*:216:216::0:0:NSD DNS Server:/nonexistent:/usr/sbin/nologin anvil:*:217:217::0:0:anvil certificate dropper:/var/db/anvil:/bin/sh zap:*:218:218::0:0:zap user:/usr/local/zap:/bin/sh sddm:*:219:219::0:0:SDDM Display Manager user:/usr/local/etc/sddm/home:/usr/sbin/nologin bs:*:220:220::0:0:Big Sister:/usr/local/bigsister:/bin/sh opensips:*:221:221::0:0:OpenSIPS user:/nonexistent:/usr/sbin/nologin rtpproxy:*:222:222::0:0:& user:/nonexistent:/sbin/nologin mqttwarn:*:223:223::0:0:mqttwarn:/nonexistent:/sbin/nologin payara:*:224:224::0:0:Payara Application Server user:/nonexistent:/usr/sbin/nologin postgrey:*:225:225::0:0:Postgrey Owner:/nonexistent:/usr/sbin/nologin sqlgrey:*:226:226::0:0:SQLgrey Owner:/nonexistent:/usr/sbin/nologin _hfm:*:227:227::0:0:hfm daemon:/nonexistent:/usr/sbin/nologin osrm:*:228:228::0:0:osrm:/nonexistent:/usr/sbin/nologin # free: 229 carbon:*:230:230::0:0:osrm:/nonexistent:/usr/sbin/nologin foundationdb:*:231:231::0:0:foundationdb:/nonexistent:/usr/sbin/nologin archiva:*:232:232::0:0:Archiva Daemon User:/usr/local/archiva:/bin/sh _ntp:*:233:233::0:0:NTP Daemon:/var/empty:/usr/sbin/nologin kafka:*:234:234::0:0:Apache Kafka user:/nonexistent:/usr/sbin/nologin openhab:*:235:235::0:0:openHAB user:/var/db/openhab2/home:/usr/sbin/nologin # free: 236 # free: 237 # free: 238 # free: 239 aprsd:*:240:240::0:0:aprsd:/nonexistent:/bin/sh tnc:*:241:241::0:0:aprsd:/nonexistent:/bin/sh prosody:*:242:242::0:0:Prosody Jabber Server:/nonexistent:/usr/sbin/nologin # free: 243 mastodon:*:244:244::0:0:Mastodon User:/usr/local/www/mastodon:/bin/sh # free: 245 # free: 246 fcron:*:247:247::0:0:fcron pseudo-user:/nonexistent:/usr/sbin/nologin # free: 248 # free: 249 # free: 250 # free: 251 # free: 252 _adsuck:*:253:253::0:0:Adsuck ad blocking user:/nonexistent:/usr/sbin/nologin # free: 254 _i2pd:*:255:255::0:0:I2P daemon:/var/db/i2pd:/usr/sbin/nologin _tor:*:256:256::0:0:Tor anonymizing router:/var/db/tor:/usr/sbin/nologin _smtpd:*:257:257::0:0:OpenSMTPD:/var/empty:/usr/sbin/nologin _smtpq:*:258:258::0:0:OpenSMTPD queue user:/var/empty:/usr/sbin/nologin # free: 259 meta1s:*:260:260::0:0:MeTA1 SMTPS:/nonexistent:/usr/sbin/nologin meta1q:*:261:261::0:0:MeTA1 QMGR:/nonexistent:/usr/sbin/nologin meta1c:*:262:262::0:0:MeTA1 SMTPC:/nonexistent:/usr/sbin/nologin meta1m:*:263:263::0:0:MeTA1 misc:/nonexistent:/usr/sbin/nologin meta1:*:264:264::0:0:MeTA1 other:/nonexistent:/usr/sbin/nologin # free: 265 # free: 266 # free: 267 # free: 268 # free: 269 # free: 270 # free: 271 # free: 272 # free: 273 # free: 274 hacluster:*:275:275::0:0:Heartbeat cluster user:/nonexistent:/usr/sbin/nologin frontbase:*:276:276::0:0:FrontBase Daemon:/usr/local/FrontBase/Databases:/bin/sh # free: 277 rtg:*:278:278::0:0:RTG daemon:/nonexistent:/usr/sbin/nologin mrtg:*:279:279::0:0:MRTG daemon:/nonexistent:/usr/sbin/nologin xymon:*:280:280::0:0:Xymon Monitor:/nonexistent:/usr/sbin/nologin prelude:*:281:281::0:0:Prelude user:/nonexistent:/usr/sbin/nologin spread:*:282:282::0:0:Spread user:/nonexistent:/usr/sbin/nologin devmon:*:283:283::0:0:devmon monitor:/nonexistent:/usr/sbin/nologin vnstat:*:284:284::0:0:vnStat Network Monitor:/nonexistent:/usr/sbin/nologin exaddos:*:285:285::0:0:exaddos daemon user:/nonexistent:/usr/sbin/nologin rancid:*:286:286::0:0:RANCID daemon user:/usr/local/var/rancid:/bin/sh # free: 287 ntopng:*:288:288::0:0:ntopng daemon user:/nonexistent:/usr/sbin/nologin # free: 289 # free: 290 # free: 291 # free: 292 # free: 293 # free: 294 # free: 295 # free: 296 # free: 297 # free: 298 # free: 299 backuppc:*:300:300::0:0:BackupPC pseudo-user:/nonexistent:/usr/sbin/nologin # free: 301 netdata:*:302:302::0:0:NetData Daemon:/var/cache/netdata:/usr/sbin/nologin # free: 303 # free: 304 # free: 305 # free: 306 # free: 307 # free: 308 # free: 309 # free: 310 # free: 311 _sphinx:*:312:312::0:0:Sphinxsearch Owner:/nonexistent:/usr/sbin/nologin _fastdfs:*:313:313::0:0:FastDFS Owner:/nonexistent:/usr/sbin/nologin # free: 314 # free: 315 # free: 316 # free: 317 # free: 318 # free: 319 # free: 320 # free: 321 # free: 322 # free: 323 # free: 324 dkfilter:*:325:325::0:0:DK Filter Owner:/nonexistent:/usr/sbin/nologin smfs:*:326:326::0:0:SMFSAV Owner:/nonexistent:/usr/sbin/nologin # free: 327 # free: 328 # free: 329 orthanc:*:330:330::0:0:Orthanc Daemon:/nonexistent:/usr/sbin/nologin # free: 331 # free: 332 # free: 333 # free: 334 # free: 335 _pma:*:336:80::0:0:phpMyAdmin Owner:/nonexistent:/usr/sbin/nologin daapd:*:337:337::0:0:daapd User:/nonexistent:/usr/sbin/nologin murmur:*:338:338::0:0:& User:/nonexistent:/usr/sbin/nologin # free: 339 wildfire:*:340:340::0:0:Wildfire Daemon:/nonexistent:/usr/sbin/nologin stunnel:*:341:341::0:0:Stunnel Daemon:/nonexistent:/usr/sbin/nologin openfire:*:342:342::0:0:Openfire IM Daemon:/nonexistent:/usr/sbin/nologin # free: 343 # free: 344 # free: 345 # free: 346 # free: 347 # free: 348 # free: 349 _sabnzbd:*:350:350::0:0:sabnzb Daemon:/nonexistent:/usr/sbin/nologin sonarr:*:351:351::0:0:Sonarr PVR:/nonexistent:/usr/sbin/nologin radarr:*:352:352::0:0:Radarr Daemon:/nonexistent:/usr/sbin/nologin _iodined:*:353:353::0:0:Iodine Daemon:/nonexistent:/usr/sbin/nologin jackett:*:354:354::0:0:Jackett Torznab Proxy Daemon:/nonexistent:/usr/sbin/nologin -# free: 354 -# free: 355 +nzbhydra2:*:355:355::0:0:NZBHydra 2 Daemon:/nonexistent:/usr/sbin/nologin # free: 356 # free: 357 # free: 358 # free: 359 # free: 360 httptunnel:*:361:361::0:0:httptunnel Daemon:/nonexistent:/usr/sbin/nologin # free: 362 # free: 363 # free: 364 # free: 365 # free: 366 # free: 367 # free: 368 # free: 369 # free: 370 # free: 371 # free: 372 # free: 373 # free: 374 # free: 375 # free: 376 # free: 377 # free: 378 # free: 379 # free: 380 # free: 381 # free: 382 # free: 383 # free: 384 # free: 385 # free: 386 # free: 387 # free: 388 ldap:*:389:389::0:0:OpenLDAP Server:/nonexistent:/usr/sbin/nologin # free: 390 # free: 391 # free: 392 # free: 393 # free: 394 # free: 395 # free: 396 # free: 397 tiarra:*:398:398::0:0:Tiarra IRC Proxy:/nonexistent:/usr/sbin/nologin # free: 399 # free: 400 # free: 401 # free: 402 # free: 403 # free: 404 # free: 405 # free: 406 # free: 407 # free: 408 # free: 409 # free: 410 uhub:*:411:411::0:0:uHub ADC Daemon:/nonexistent:/usr/sbin/nologin # free: 412 # free: 413 # free: 414 # free: 415 # free: 416 # free: 417 # free: 418 # free: 419 oxidized:*:420:420::0:0:Oxidized Owner:/var/db/oxidized:/usr/sbin/nologin # free: 421 # free: 422 # free: 423 # free: 424 # free: 425 drweb:*:426:426::0:0:Dr.Web Mail Scanner:/nonexistent:/usr/sbin/nologin # free: 427 # free: 428 varnish:*:429:429::0:0:Varnish Cache User:/nonexistent:/usr/sbin/nologin varnishlog:*:430:429::0:0:Varnish Log User:/nonexistent:/usr/sbin/nologin # free: 431 # free: 432 # free: 433 # free: 434 # free: 435 # free: 436 # free: 437 # free: 438 # free: 439 # free: 440 # free: 441 quasselcore:*:442:442::0:0:Quassel IRC User:/nonexistent:/usr/sbin/nologin # free: 443 callweaver:*:444:444::0:0:Callweaver account:/var/lib/callweaver:/usr/sbin/nologin # free: 445 # free: 446 # free: 447 # free: 448 # free: 449 ecartis:*:450:450::0:0:Ecartis Listserver:/usr/local/ecartis:/usr/sbin/nologin # free: 451 # free: 452 # free: 453 # free: 454 # free: 455 # free: 456 # free: 457 # free: 458 # free: 459 # free: 460 # free: 461 # free: 462 # free: 463 # free: 464 courier:*:465:465::0:0:Courier Mail Server:/nonexistent:/usr/sbin/nologin condor:*:466:466::0:0:& user:/home/condor:/usr/sbin/nologin netmon:*:467:467::0:0:Network monitor account:/var/netmon:/usr/sbin/nologin slurm:*:468:468::0:0:SLURM Daemon:/nonexistent:/usr/sbin/nologin consul:*:469:469::0:0:Consul Daemon:/var/tmp/consul:/usr/sbin/nologin serf:*:470:470::0:0:Serf Daemon:/nonexistent:/usr/sbin/nologin vault:*:471:471::0:0:Vault Daemon:/nonexistent:/usr/sbin/nologin nomad:*:472:472::0:0:Nomad Daemon:/var/tmp/nomad:/usr/sbin/nologin minio:*:473:473::0:0:Minio Daemon:/var/tmp/minio:/usr/sbin/nologin gitlab-runner:*:474:474::0:0:GitLab Runner Daemon:/var/tmp/gitlab_runner:/usr/sbin/nologin traefik:*:475:475::0:0:Traefik Daemon:/var/tmp/traefik:/usr/sbin/nologin gitlab-pages:*:476:476::0:0:GitLab Pages Daemon:/var/tmp/gitlab_pages:/usr/sbin/nologin fiche:*:477:477::0:0:fiche Daemon:/usr/local/www/fiche:/usr/sbin/nologin prometheus:*:478:478::0:0:Prometheus Daemon:/var/tmp/prometheus:/usr/sbin/nologin alertmanager:*:479:479::0:0:Alertmanager Daemon:/var/tmp/alertmanager:/usr/sbin/nologin # free: 480 # free: 481 # free: 482 # free: 483 # free: 484 # free: 485 # free: 486 # free: 487 # free: 488 # free: 489 # free: 490 # free: 491 # free: 492 # free: 493 # free: 494 # free: 495 # free: 496 # free: 497 # free: 498 # free: 499 # free: 500 # free: 501 # free: 502 # free: 503 # free: 504 _bbstored:*:505:505::0:0:Box Backup Store Daemon:/nonexistent:/usr/sbin/nologin radmind:*:506:506::0:0:radmind User:/var/radmind:/usr/sbin/nologin skkserv:*:507:507::0:0:skkserv User:/nonexistent:/usr/sbin/nologin # free: 508 # free: 509 # free: 510 # free: 511 pwhois:*:512:512::0:0:pwhoisd User:/nonexistent:/usr/sbin/nologin # free: 513 # free: 514 # free: 515 # free: 516 # free: 517 # free: 518 # free: 519 libvirtdbus:*:520:520::0:0:Libvirt D-Bus bridge:/nonexistent:/usr/sbin/nologin davmail:*:521:521::0:0:Davmail Exchange Gateway:/nonexistent:/usr/sbin/nologin nullmail:*:522:522::0:0:Nullmailer Mail System:/var/spool/nullmailer:/bin/sh freevo:*:523:523::0:0:Freevo User:/var/db/freevo:/bin/sh # free: 524 dkimproxy:*:525:525::0:0:DKIM Proxy Owner:/nonexistent:/usr/sbin/nologin # free: 526 # free: 527 # free: 528 # free: 529 # free: 530 # free: 531 # free: 532 # free: 533 pgbouncer:*:534:534::0:0:Pgbouncer Daemon:/nonexistent:/usr/sbin/nologin redis:*:535:535::0:0:Redis Daemon:/nonexistent:/usr/sbin/nologin # free: 536 # free: 537 # free: 538 # free: 539 # free: 540 # free: 541 _flowd:*:542:542::0:0:flowd privilege separation user:/var/empty:/usr/sbin/nologin ejabberd:*:543:543::0:0:ejabberd pseudo user:/var/spool/ejabberd:/bin/sh # free: 544 # free: 545 # free: 546 # free: 547 # free: 548 # free: 549 # free: 550 # free: 551 kresd:*:552:552::0:0:Knot DNS Resolver:/nonexistent:/usr/sbin/nologin knot:*:553:553::0:0:Knot DNS Server:/nonexistent:/usr/sbin/nologin qtss:*:554:554::0:0:Darwin Streaming Server:/nonexistent:/usr/sbin/nologin ircdru:*:555:555::0:0:Russian hybrid IRC server:/nonexistent:/bin/sh messagebus:*:556:556::0:0:D-BUS Daemon User:/nonexistent:/usr/sbin/nologin # free: 557 avahi:*:558:558::0:0:Avahi Daemon User:/nonexistent:/usr/sbin/nologin tacacs:*:559:559::0:0:TACACS+ Daemon User:/nonexistent:/usr/sbin/nologin haldaemon:*:560:560::0:0:HAL Daemon User:/nonexistent:/usr/sbin/nologin distcc:*:561:561::0:0:Distcc user:/nonexistent:/usr/sbin/nologin polkit:*:562:562::0:0:PolicyKit User:/nonexistent:/usr/sbin/nologin pulse:*:563:563::0:0:PulseAudio System User:/nonexistent:/usr/sbin/nologin # free: 564 polkitd:*:565:565::0:0:Polkit Daemon User:/var/empty:/usr/sbin/nologin # free: 566 # free: 567 # free: 568 # free: 569 # free: 570 # free: 571 # free: 572 # free: 573 # free: 574 nexus:*:575:575::0:0:Nexus Repository Manager OSS:/nonexistent:/usr/sbin/nologin # free: 576 # free: 577 # free: 578 # free: 579 # free: 580 # free: 581 # free: 582 # free: 583 # free: 584 # free: 585 # free: 586 assp:*:587:587::0:0:ASSP Anti-Spam Proxy:/var/db/assp:/usr/sbin/nologin avahi-autoipd:*:588:588::0:0:Avahi Autoipd Daemon user:/nonexistent:/usr/sbin/nologin # free: 589 # free: 590 # free: 591 # free: 592 # free: 593 # free: 594 # free: 595 # free: 596 # free: 597 # free: 598 # free: 599 _xsi:*:600:600::0:0:XMLSysInfo User:/nonexistent:/usr/sbin/nologin _tss:*:601:601:daemon:0:0:TrouSerS user:/var/empty:/usr/sbin/nologin _pkcs11:*:602:602:daemon:0:0:opencryptoki user:/var/empty:/usr/sbin/nologin _acme:*:603:603::0:0:ACME client user:/var/empty:/usr/sbin/nologin # free: 604 # free: 605 # free: 606 # free: 607 # free: 608 # free: 609 freeswitch:*:610:610::0:0:Freeswitch user:/nonexistent:/usr/sbin/nologin # free: 611 # free: 612 # free: 613 # free: 614 ntpa:*:615:615::0:0:NTPa user:/nonexistent:/usr/sbin/nologin taskd:*:616:616::0:0:taskd user:/nonexistent:/usr/sbin/nologin # free: 617 # free: 618 # free: 619 # free: 620 # free: 621 # free: 622 # free: 623 # free: 624 # free: 625 # free: 626 # free: 627 # free: 628 # free: 629 # free: 630 # free: 631 # free: 632 # free: 633 # free: 634 # free: 635 _pla:*:636:80::0:0:phpLDAPAdmin Owner:/nonexistent:/usr/sbin/nologin # free: 637 # free: 638 caldavd:*:639:639::0:0:Caldavd user:/var/db/caldavd:/usr/sbin/nologin # free: 640 monkeysphere:*:641:641::0:0:Monkeysphere User:/var/monkeysphere:/usr/local/bin/bash # free: 642 # free: 643 # free: 644 # free: 645 # free: 646 # free: 647 # free: 648 # free: 649 # free: 650 # free: 651 # free: 652 # free: 653 # free: 654 # free: 655 # free: 656 # free: 657 # free: 658 # free: 659 # free: 660 # free: 661 # free: 662 # free: 663 # free: 664 # free: 665 aox:*:666:666::0:0:Archiveopteryx user:/nonexistent:/usr/sbin/nologin riak:*:667:667::0:0:Riak user:/usr/local/lib/riak:/bin/sh riakcs:*:668:667::0:0:Riak CS user:/usr/local/lib/riak-cs:/bin/sh stanchion:*:669:667::0:0:Stanchion user:/usr/local/lib/stanchion:/bin/sh # free: 670 # free: 671 # free: 672 # free: 673 # free: 674 # free: 675 # free: 676 # free: 677 # free: 678 # free: 679 # free: 680 # free: 681 # free: 682 # free: 683 # free: 684 # free: 685 # free: 686 # free: 687 # free: 688 # free: 689 # free: 690 # free: 691 # free: 692 # free: 693 # free: 694 # free: 695 # free: 696 # free: 697 # free: 698 # free: 699 bnetd:*:700:700::0:0:Bnetd user:/nonexistent:/usr/sbin/nologin fastnetmon:*:701:701::0:0:FastNetMon user:/nonexistent:/usr/sbin/nologin _sndio:*:702:702::0:0:sndio privsep:/var/empty:/usr/sbin/nologin # free: 703 # free: 704 # free: 705 # free: 706 # free: 707 # free: 708 # free: 709 # free: 710 # free: 711 # free: 712 # free: 713 # free: 714 # free: 715 # free: 716 bopm:*:717:717::0:0:Blitzed Open Proxy Monitor:/nonexistent:/bin/sh _dnscrypt-wrapper:*:718:65534::0:0:dnscrypt-wrapper user:/var/empty:/usr/sbin/nologin # free: 719 # free: 720 # free: 721 # free: 722 # free: 723 # free: 724 # free: 725 # free: 726 # free: 727 # free: 728 # free: 729 # free: 730 # free: 731 # free: 732 # free: 733 # free: 734 # free: 735 # free: 736 # free: 737 # free: 738 # free: 739 # free: 740 # free: 741 # free: 742 # free: 743 # free: 744 # free: 745 # free: 746 # free: 747 # free: 748 # free: 749 # free: 750 # free: 751 # free: 752 # free: 753 # free: 754 # free: 755 # free: 756 # free: 757 # free: 758 # free: 759 # free: 760 # free: 761 # free: 762 # free: 763 # free: 764 # free: 765 # free: 766 # free: 767 # free: 768 # free: 769 postgres:*:770:770::0:0:PostgreSQL Daemon:/var/db/postgres:/bin/sh cockroach:*:771:771::0:0:CockroachDB Daemon:/var/db/cockroach:/usr/sbin/nologin # free: 772 # free: 773 # free: 774 # free: 775 # free: 776 openxpki:*:777:777::0:0:OpenXPKI Owner:/nonexistent:/usr/sbin/nologin litecoin:*:778:778::0:0:litecoin Daemon:/var/db/litecoin:/usr/sbin/nologin bitcoin:*:779:779::0:0:bitcoin Daemon:/var/db/bitcoin:/usr/sbin/nologin zetacoin:*:780:780::0:0:ZetaCoin Daemon:/nonexistent:/usr/sbin/nologin monero:*:781:781::0:0:Monero Daemon:/var/db/monero:/usr/sbin/nologin # free: 782 # free: 783 # free: 784 # free: 785 # free: 786 # free: 787 # free: 788 # free: 789 # free: 790 # free: 791 # free: 792 # free: 793 # free: 794 # free: 795 # free: 796 # free: 797 # free: 798 # free: 799 clickhouse:*:800:800::0:0:ClickHouse Daemon:/var/db/clickhouse:/usr/sbin/nologin # free: 801 # free: 802 # free: 803 # free: 804 # free: 805 # free: 806 # free: 807 # free: 808 # free: 809 # free: 810 # free: 811 foreman_proxy:*:812:812::0:0:Foreman Smart Proxy:/usr/local/share/foreman-proxy:/usr/sbin/nologin hitch:*:813:813::0:0:Hitch TLS Proxy:/nonexistent:/usr/sbin/nologin puppet:*:814:814::0:0:Puppet Daemon:/nonexistent:/usr/sbin/nologin uchiwa:*:815:815::0:0:Uchiwa Dashboard:/nonexistent:/usr/sbin/nologin # free: 816 rslsync:*:817:817::0:0:Resilio Sync Daemon:/nonexistent:/usr/sbin/nologin jenkins:*:818:818::0:0:Jenkins CI:/usr/local/jenkins:/bin/sh rundeck:*:819:819::0:0:Rundeck:/usr/local/rundeck:/bin/sh openacs:*:820:820::0:0:OpenACS Daemon User:/nonexistent:/usr/sbin/nologin dotlrn:*:821:821::0:0:.LRN Daemon User:/nonexistent:/usr/sbin/nologin titus:*:822:65533::0:0:Titus Daemon User:/nonexistent:/usr/sbin/nologin titus-keys:*:823:65533::0:0:Titus Keyserver User:/nonexistent:/usr/sbin/nologin selenium:*:824:824::0:0:Selenium Daemon User:/usr/local/selenium:/bin/sh polw:*:825:825::0:0:Policyd-weight Cache Owner:/nonexistent:/sbin/nologin statsd:*:826:826::0:0:Statsd Daemon:/nonexistent:/sbin/nologin # free: 827 # free: 828 # free: 829 # free: 830 # free: 831 # free: 832 # free: 833 # free: 834 # free: 835 # free: 836 # free: 837 # free: 838 # free: 839 netdisco:*:840:840::0:0:netdisco daemon:/nonexistent:/usr/sbin/nologin tcpcryptd:*:841:841::0:0:tcpcrypt daemon:/nonexistent:/usr/sbin/nologin munin:*:842:842::0:0:Munin:/var/munin:/usr/sbin/nologin # free: 843 subsonic:*:844:844::0:0:Subsonic standalone-server:/nonexistent:/usr/sbin/nologin # free: 845 sogod:*:846:846::0:0:SOGo groupware:/nonexistent:/usr/sbin/nologin domoticz:*:847:847::0:0:domoticz user:/nonexistent:/usr/sbin/nologin graylog:*:848:848::0:0:Graylog user:/nonexistent:/usr/sbin/nologin chronyd:*:849:849::0:0:chronyd user:/nonexistent:/usr/sbin/nologin qbittorrent:*:850:850::0:0:qBittorrent Daemon User:/var/db/qbittorrent/conf:/usr/sbin/nologin cassandra:*:851:851::0:0:Cassandra DB Daemon User:/var/db/cassandra:/usr/sbin/nologin # free: 852 _geodns:*:853:853::0:0:GeoDNS User:/var/empty:/usr/sbin/nologin # free: 854 # free: 855 # free: 856 # free: 857 # free: 858 # free: 859 # free: 860 # free: 861 # free: 862 # free: 863 # free: 864 # free: 865 # free: 866 # free: 867 # free: 868 # free: 869 # free: 870 archiva:*:871:871::0:0:Apache Archiva Daemon:/nonexistent:/usr/sbin/nologin # free: 872 # free: 873 # free: 874 # free: 875 # free: 876 # free: 877 # free: 878 # free: 879 # free: 880 # free: 881 midpoint:*:882:882::0:0:midPoint user:/var/db/midpoint:/usr/sbin/nologin ipfs-go:*:883:883::0:0:ipfs-go user:/var/db/ipfs-go:/bin/sh telegraf:*:884:884::0:0:telegraf user:/nonexistent:/usr/sbin/nologin tcpdump:*:885:885::0:0:tcpdump user:/nonexistent:/usr/sbin/nologin miniflux:*:886:886::0:0:Miniflux:/nonexistent:/usr/sbin/nologin pdagent:*:887:887::0:0:PagerDuty Agent:/nonexistent:/usr/sbin/nologin vuls:*:888:888::0:0:VULnerability Scanner:/var/db/vuls:/usr/sbin/nologin mattermost:*:889:889::0:0:Mattermost:/usr/local/www/mattermost:/usr/sbin/nologin matterircd:*:890:890::0:0:Matterircd User:/nonexistent:/usr/sbin/nologin urbackup:*:891:891::0:0:UrBackup Server:/var/urbackup:/usr/sbin/nologin tautulli:*:892:892::0:0:Tautulli user:/nonexistent:/usr/sbin/nologin logstash:*:893:893::0:0:Logstash user:/nonexistent:/usr/sbin/nologin arangodb:*:894:894::0:0:ArangoDB pseudo-user:/var/db/arangodb:/usr/sbin/nologin snmptt:*:895:895::0:0:SNMPTT User:/var/spool/snmptt:/usr/sbin/nologin istat:*:896:896::0:0:istatserver user:/nonexistent:/usr/sbin/nologin znc:*:897:897::0:0:ZNC User:/nonexistent:/usr/sbin/nologin ufdb:*:898:898::0:0:ufdb user:/nonexistent:/usr/sbin/nologin guacamole:*:899:899::0:0:Guacamole user:/nonexistent:/usr/sbin/nologin seafile:*:900:900::0:0:Seafile user:/nonexistent:/usr/bin/nologin fossy:*:901:901::0:0:FOSSology user:/usr/local/share/fossology:/usr/local/bin/bash scanlogd:*:902:902::0:0:scanlogd user:/nonexistent:/usr/sbin/nologin _ocserv:*:903:903::0:0:ocserv user:/nonexistent:/usr/sbin/nologin grafana:*:904:904::0:0:Grafana2:/nonexistent:/usr/bin/nologin artifactory:*:905:905::0:0:artifactory user:/nonexistent:/usr/sbin/nologin opentsdb:*:906:906::0:0:OpenTSDB Daemon:/var/empty:/usr/sbin/nologin influxd:*:907:907::0:0:InfluxDB Daemon:/var/empty:/usr/sbin/nologin riemann:*:908:908::0:0:Riemann User:/var/empty:/usr/sbin/nologin proxy65:*:909:909::0:0:Proxy65 Daemon:/nonexistent:/usr/sbin/nologin bacula:*:910:910::0:0:Bacula Daemon:/var/db/bacula:/usr/sbin/nologin iserv:*:911:911::0:0:Iserv Daemon:/nonexistent:/usr/sbin/nologin _sj3:*:912:912::0:0:SJ3 Daemon:/nonexistent:/usr/sbin/nologin _relayd:*:913:913::0:0:Relay Daemon:/var/empty:/usr/sbin/nologin bitlbee:*:914:914::0:0:Bitlbee pseudo-user:/var/db/bitlbee:/usr/sbin/nologin logcheck:*:915:915::0:0:Logcheck system account:/var/lib/logcheck:/usr/local/bin/bash # free: 916 _prayer:*:917:917::0:0:Prayer Account:/nonexistent:/usr/sbin/nologin nefu:*:918:918::0:0:Nefu daemon:/var/db/nefu:/usr/sbin/nologin couchdb:*:919:919::0:0:CouchDB Account:/var/empty:/usr/sbin/nologin vboxusers:*:920:920::0:0:Virtualbox user:/nonexistent:/usr/sbin/nologin transmission:*:921:921::0:0:Transmission Daemon User:/usr/local/etc/transmission/home:/usr/sbin/nologin mongodb:*:922:922::0:0:MongoDB pseudo-user:/var/db/mongodb:/usr/sbin/nologin liquidsoap:*:923:923::0:0:Liquidsoap User:/nonexistent:/usr/sbin/nologin postpals:*:924:924::0:0:postpals user:/nonexistent:/usr/sbin/nologin mfs:*:925:925::0:0:MooseFS User:/nonexistent:/usr/sbin/nologin minbif:*:926:926::0:0:Minbif Daemon User:/nonexistent:/usr/sbin/nologin kumofs:*:927:927::0:0:kumofs daemon:/nonexistent:/usr/sbin/nologin nslcd:*:928:928::0:0:nslcd daemon:/nonexistent:/usr/sbin/nologin activemq:*:929:929::0:0:ActiveMQ Daemon:/nonexistent:/usr/sbin/nologin ifgraph:*:930:930::0:0:ifGraph:/nonexistent:/usr/sbin/nologin asterisk:*:931:931::0:0:Asterisk User:/nonexistent:/usr/sbin/nologin sancp:*:932:932::0:0:SANCP Daemon:/var/log/sancp:/usr/sbin/nologin dlna:*:933:933::0:0:DLNA Daemon:/nonexistent:/usr/sbin/nologin torrus:*:934:934::0:0:torrus daemon:/nonexistent:/usr/sbin/nologin erlyvideo:*:935:935::0:0:erlyvideo user:/nonexistent:/usr/sbin/nologin crtmpserver:*:936:936::0:0:crtmpserver user:/nonexistent:/usr/sbin/nologin get_iplayer:*:937:937::0:0:get_iplayer user:/nonexistent:/usr/sbin/nologin vdr:*:938:938::0:0:vdr user:/nonexistent:/usr/sbin/nologin noip:*:939:939::0:0:noip user:/nonexistent:/usr/sbin/nologin _tcpproxy:*:940:940::0:0:tcpproxy user:/nonexistent:/usr/sbin/nologin cego:*:941:941::0:0:cego user:/usr/local/cego:/usr/sbin/nologin teamspeak:*:942:942::0:0:TeamSpeak user:/nonexistent:/usr/sbin/nologin dnetfold:*:943:943::0:0:& user:/nonexistent:/usr/sbin/nologin bbs:*:944:944::0:0:& user:/nonexistent:/usr/sbin/nologin dbxml:*:945:945::0:0:& user:/nonexistent:/usr/sbin/nologin mediatomb:*:946:946::0:0:Mediatomb UPnP AV MediaServer:/nonexistent:/usr/sbin/nologin mapred:*:947:955::0:0:Hadoop MapReduce user:/nonexistent:/usr/sbin/nologin dnrd:*:948:948::0:0:& user:/nonexistent:/usr/sbin/nologin _lldpd:*:949:949::0:0:lldpd user:/nonexistent:/usr/sbin/nologin couchpotato:*:950:954::0:0:couchpotato user:/nonexistent:/usr/sbin/nologin openerpd:*:951:951::0:0:Openerpd user:/nonexistent:/usr/sbin/nologin bitten-slave:*:952:952:daemon:0:0:Bitten slave user:/var/lib/bitten-slave:/usr/sbin/nologin _neubot:*:953:953::0:0:neubot daemon:/nonexistent:/usr/sbin/nologin oops:*:954:65534::0:0:oops user:/nonexistent:/usr/sbin/nologin hdfs:*:955:955::0:0:Hadoop HDFS user:/nonexistent:/usr/sbin/nologin pandora:*:956:956::0:0:Pandora FMS user:/usr/local/etc/pandora/home:/usr/sbin/nologin razorback:*:957:957::0:0:Razorback user:/var/run/razorback:/usr/sbin/nologin gnunet:*:958:958::0:0:GNUnet daemon:/var/lib/gnunet:/usr/sbin/nologin c_icap:*:959:959::0:0:c-icap daemon:/var/empty:/usr/sbin/nologin trytond:*:960:960::0:0:trytond daemon:/var/empty:/usr/sbin/nologin gearmand:*:961:961::0:0:gearmand daemon:/var/empty:/usr/sbin/nologin zookeeper:*:962:962::0:0:zookeeper user:/nonexistent:/usr/sbin/nologin fluentd:*:963:963::0:0:fluentd user:/nonexistent:/usr/sbin/nologin git_daemon:*:964:964::0:0:git daemon:/nonexistent:/usr/sbin/nologin elasticsearch:*:965:965::0:0:elasticsearch user:/nonexistent:/usr/sbin/nologin ossec:*:966:966::0:0:OSSEC user:/nonexistent:/usr/sbin/nologin ossecm:*:967:966::0:0:OSSEC mail user:/nonexistent:/usr/sbin/nologin ossecr:*:968:966::0:0:OSSEC rem user:/nonexistent:/usr/sbin/nologin kippo:*:969:969::0:0:kippo user:/nonexistent:/usr/sbin/nologin colord:*:970:970::0:0:colord color management daemon:/nonexistent:/usr/sbin/nologin shibd:*:971:971::0:0:Shibboleth SAML daemon:/nonexistent:/usr/sbin/nologin plex:*:972:972::0:0:Plex Media Server:/nonexistent:/usr/sbin/nologin boinc:*:973:973::0:0:BOINC user:/var/db/boinc:/bin/sh radicale:*:974:974::0:0:Radicale daemon:/nonexistent:/usr/sbin/nologin unifi:*:975:975::0:0:Unifi Wireless Controller:/nonexistent:/usr/sbin/nologin minetest:*:976:976::0:0:& server:/nonexistent:/usr/sbin/nologin tests:*:977:65534::0:0:Unprivileged user for tests:/nonexistent:/usr/sbin/nologin _dnscrypt-proxy:*:978:978::0:0:dnscrypt-proxy user:/var/empty:/usr/sbin/nologin ums:*:979:979::0:0:Universal Media Server:/nonexistent:/usr/sbin/nologin hbase:*:980:980::0:0:HBase user:/nonexistent:/usr/sbin/nologin uvncrep:*:981:981::0:0:UltraVNC Repeater daemon:/nonexistent:/usr/sbin/nologin bro:*:982:982::0:0:Bro Network Security Monitor:/nonexistent:/usr/sbin/nologin syncthing:*:983:983::0:0:Syncthing Daemon:/var/tmp/syncthing:/usr/sbin/nologin tvheadend:*:984:984::0:0:TV Headend:/usr/local/etc/tvheadend:/bin/sh puppetdb:*:985:985::0:0:PuppetDB Daemon pseudo-user:/nonexistent:/usr/sbin/nologin kamailio:*:986:986::0:0:kamailio daemon:/nonexistent:/usr/sbin/nologin spark:*:987:987::0:0:Apache Spark user:/nonexistent:/usr/sbin/nologin toxdht:*:988:65534::0:0:Tox DHT bootstrap user:/nonexistent:/usr/sbin/nologin emby:*:989:989::0:0:Emby:/nonexistent:/usr/sbin/nologin oozie:*:990:990::0:0:Apache Oozie user:/nonexistent:/usr/sbin/nologin sguil:*:991:991::0:0:Sguil:/nonexistent:/usr/sbin/nologin hive:*:992:992::0:0:Apache Hive user:/nonexistent:/usr/sbin/nologin kannel:*:993:993::0:0:Kannel User:/nonexistent:/usr/sbin/nologin rcynic:*:994:994::0:0:RPKI validation system:/nonexistent:/usr/sbin/nologin rpkirtr:*:995:995::0:0:RPKI router server:/nonexistent:/usr/sbin/nologin tarantool:*:996:996::0:0:Tarantool Daemon:/nonexistent:/usr/sbin/nologin bareos:*:997:997::0:0:Bareos Daemon:/var/db/bareos:/usr/sbin/nologin _rmilter:*:998:998::0:0:Rmilter daemon:/nonexistent:/usr/sbin/nologin ebnetd:*:999:999::0:0:EBNETD:/nonexistent:/usr/sbin/nologin # DO NOT USE: 1000-65533 nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin Index: head/news/Makefile =================================================================== --- head/news/Makefile (revision 491595) +++ head/news/Makefile (revision 491596) @@ -1,81 +1,82 @@ # $FreeBSD$ # COMMENT = Network news SUBDIR += atp SUBDIR += aub SUBDIR += c-nocem SUBDIR += cg SUBDIR += cleanfeed SUBDIR += cnews SUBDIR += crashmail SUBDIR += diablo SUBDIR += fidogate SUBDIR += golded+ SUBDIR += gup SUBDIR += hellanzb SUBDIR += husky SUBDIR += husky-areafix SUBDIR += husky-fidoconf SUBDIR += husky-hpt SUBDIR += husky-htick SUBDIR += husky-huskylib SUBDIR += husky-smapi SUBDIR += husky-sqpack SUBDIR += ifmail SUBDIR += inn SUBDIR += knews SUBDIR += leafnode SUBDIR += lusernet SUBDIR += mail2nntp SUBDIR += mmail SUBDIR += multisuck SUBDIR += newscache SUBDIR += newsfetch SUBDIR += newsfish SUBDIR += newsgrab SUBDIR += newspost SUBDIR += newsstar SUBDIR += newsx SUBDIR += nget SUBDIR += nn SUBDIR += nnap SUBDIR += nntp SUBDIR += nntpbtr SUBDIR += nntpcache SUBDIR += noffle SUBDIR += nzbget + SUBDIR += nzbhydra2 SUBDIR += nzbperl SUBDIR += p5-NNTPClient SUBDIR += p5-News-Article SUBDIR += p5-News-Article-NoCeM SUBDIR += p5-News-Newsrc SUBDIR += p5-POE-Component-Client-NNTP SUBDIR += p5-POE-Component-Server-NNTP SUBDIR += pan SUBDIR += papercut SUBDIR += pgpmoose SUBDIR += plor SUBDIR += py-pynzb SUBDIR += py-sabyenc SUBDIR += py-yenc SUBDIR += rawdog SUBDIR += s-news SUBDIR += sabnzbdplus SUBDIR += slrn SUBDIR += slrnconf SUBDIR += slrnface SUBDIR += sn SUBDIR += suck SUBDIR += suck-cnews SUBDIR += tin SUBDIR += trn SUBDIR += trn4 SUBDIR += ubh SUBDIR += xpn SUBDIR += xrn SUBDIR += yencode SUBDIR += yydecode .include Index: head/news/nzbhydra2/Makefile =================================================================== --- head/news/nzbhydra2/Makefile (nonexistent) +++ head/news/nzbhydra2/Makefile (revision 491596) @@ -0,0 +1,52 @@ +# $FreeBSD$ + +PORTNAME= nzbhydra2 +DISTVERSION= 2.3.3 +DISTVERSIONSUFFIX= -linux +CATEGORIES= news java +MASTER_SITES= https://github.com/theotherp/${PORTNAME}/releases/download/v${DISTVERSION}/ + +MAINTAINER= daniel@shafer.cc +COMMENT= Usenet meta search + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= amd64 + +USES= python shebangfix zip +USE_JAVA= yes +USE_RC_SUBR= nzbhydra2 + +NO_BUILD= yes +NO_WRKSUBDIR= yes + +SUB_FILES= nzbhydra2 nzbhydra2wrapper.py +SUB_LIST= PYTHON_CMD=${PYTHON_CMD} \ + JAVA=${JAVA} + +JAVA_VERSION= 1.8 1.9 1.10 1.11 +JAVA_VENDOR= openjdk +JAVA_RUN= yes + +USERS= nzbhydra2 +GROUPS= nzbhydra2 + +PLIST_FILES= ${DATADIR}/lib/core-2.3.3-exec.jar \ + ${DATADIR}/nzbhydra2 \ + ${DATADIR}/nzbhydra2wrapper.py \ + ${DATADIR}/changelog.md \ + ${DATADIR}/readme.md \ + ${DATADIR}/LICENSE + +post-extract: + # Cleanup unnecessary files + @${RM} -r ${WRKSRC}/systemd ${WRKSRC}/sysv ${WRKSRC}/rc.d ${WRKSRC}/upstart + +do-install: + @${MKDIR} ${STAGEDIR}/${DATADIR} + ${INSTALL} -d -m 755 ${STAGEDIR}/${DATADIR} + cd ${WRKSRC} && ${COPYTREE_SHARE} \* ${STAGEDIR}/${DATADIR} + ${INSTALL_DATA} ${WRKDIR}/nzbhydra2wrapper.py ${STAGEDIR}/${DATADIR} + +.include Property changes on: head/news/nzbhydra2/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/news/nzbhydra2/distinfo =================================================================== --- head/news/nzbhydra2/distinfo (nonexistent) +++ head/news/nzbhydra2/distinfo (revision 491596) @@ -0,0 +1,3 @@ +TIMESTAMP = 1548790229 +SHA256 (nzbhydra2-2.3.3-linux.zip) = 899981bccab23828bfc95590c22386261556271323f1810f73aecdeaf014a62f +SIZE (nzbhydra2-2.3.3-linux.zip) = 61623948 Property changes on: head/news/nzbhydra2/distinfo ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/news/nzbhydra2/files/nzbhydra2.in =================================================================== --- head/news/nzbhydra2/files/nzbhydra2.in (nonexistent) +++ head/news/nzbhydra2/files/nzbhydra2.in (revision 491596) @@ -0,0 +1,58 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: nzbhydra2 +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# nzbhydra2_enable (bool): Set to NO by default. +# Set it to YES to enable it. +# nzbhydra2_user: The user account nzbhydra daemon runs as what +# you want it to be. It uses '_sabnzbd' user by +# default. Do not sets it as empty or it will run +# as root. +# nzbhydra2_group: The group account nzbhydra daemon runs as what +# you want it to be. It uses 'nzbhydra2' group by +# default. Do not sets it as empty or it will run +# as wheel. +# nzbhydra2_dir: Directory where nzbhydra lives. +# Default: %%PREFIX%%/share/nzbhydra2 +# nzbhydra2_datafolder: Data directory for nzbhydra (DB, Logs, config) +# Default: %%PREFIX%%/nzbhydra2 + +. /etc/rc.subr + +name="nzbhydra2" +rcvar=${name}_enable + +load_rc_config ${name} + +: ${nzbhydra2_enable:="NO"} +: ${nzbhydra2_user:="nzbhydra2"} +: ${nzbhydra2_group:="nzbhydra2"} +: ${nzbhydra2_dir:="%%PREFIX%%/share/nzbhydra2"} +: ${nzbhydra2_datafolder:="%%PREFIX%%/nzbhydra2"} + +pidfile="/var/run/nzbhydra2/nzbhydra2.pid" +command="%%PYTHON_CMD%%" +command_args="${nzbhydra2_dir}/nzbhydra2wrapper.py --datafolder ${nzbhydra2_datafolder} --pidfile ${pidfile} --daemon --nobrowser --java %%JAVA%%" + +start_precmd="prestart" +prestart() { + if [ -f ${pidfile} ]; then + rm -f ${pidfile} + echo "Removing stale pidfile." + elif [ ! -d ${pidfile%/*} ]; then + install -d -o ${nzbhydra2_user} -g ${nzbhydra2_group} ${pidfile%/*} + fi + + if [ ! -d ${nzbhydra2_datadir} ]; then + install -d -o ${nzbhydra2_user} -g ${nzbhydra2_group} ${nzbhydra2_datadir} + fi +} + +run_rc_command "$1" Property changes on: head/news/nzbhydra2/files/nzbhydra2.in ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/news/nzbhydra2/files/nzbhydra2wrapper.py.in =================================================================== --- head/news/nzbhydra2/files/nzbhydra2wrapper.py.in (nonexistent) +++ head/news/nzbhydra2/files/nzbhydra2wrapper.py.in (revision 491596) @@ -0,0 +1,625 @@ +#!%%PYTHON_CMD%% +from __future__ import print_function +import sys + +CURRENT_PYTHON = sys.version_info[:2] +REQUIRED_PYTHON = (2, 7) + +# This check and everything above must remain compatible with Python 2.7 and above. +if CURRENT_PYTHON > REQUIRED_PYTHON: + sys.stderr.write("This script requires Python {}.{}, but you're trying to run it on Python {}.{}.".format(*(REQUIRED_PYTHON + CURRENT_PYTHON))) + sys.exit(1) + +import argparse +import datetime +import logging +import os +import platform +import re +import shutil +import subprocess +import zipfile +from __builtin__ import file +from logging.handlers import RotatingFileHandler + +jarFile = None +basepath = None +args = [] +unknownArgs = [] +terminatedByWrapper = False + +LOGGER_DEFAULT_FORMAT = u'%(asctime)s %(levelname)s - %(message)s' +LOGGER_DEFAULT_LEVEL = 'INFO' +logger = logging.getLogger('root') +console_logger = logging.StreamHandler(sys.stdout) +console_logger.setFormatter(logging.Formatter(LOGGER_DEFAULT_FORMAT)) +console_logger.setLevel(LOGGER_DEFAULT_LEVEL) +logger.addHandler(console_logger) +file_logger = None +logger.setLevel(LOGGER_DEFAULT_LEVEL) +consoleLines = [] + +def getBasePath(): + global basepath + if basepath is not None: + return basepath + if "HYDRAWORKINGFOLDER" in os.environ.keys(): + return os.environ["HYDRAWORKINGFOLDER"] + import sys + if sys.executable: + basepath = os.path.dirname(sys.executable) + if os.path.exists(os.path.join(basepath, "readme.md")) and os.path.exists(os.path.join(basepath, "changelog.md")): + return basepath + basepath = os.path.dirname(os.path.abspath(sys.argv[0])) + if os.path.exists(os.path.join(basepath, "readme.md")) and os.path.exists(os.path.join(basepath, "changelog.md")): + return basepath + try: + basepath = os.path.dirname(os.path.abspath(__file__)) + except NameError: # We are the main py2exe script, not a module + import sys + basepath = os.path.dirname(os.path.abspath(sys.argv[0])) + return basepath + + +class GracefulKiller: + def __init__(self): + import signal + signal.signal(signal.SIGINT, terminated) + signal.signal(signal.SIGTERM, terminated) + + +def terminated(signum, frame): + logger.info("Terminated by signal %d" % signum) + killProcess() + + +def killProcess(): + if process is not None and process.poll() is None: + global terminatedByWrapper + logger.info("NZBHydra2 wrapper shutdown request. Terminating main process gracefully") + terminatedByWrapper = True + process.terminate() + + +def daemonize(pidfile, nopidfile): + # Make a non-session-leader child process + try: + pid = os.fork() # @UndefinedVariable - only available in UNIX + if pid != 0: + os._exit(0) + except OSError as e: + sys.stderr.write("fork #1 failed: %d (%s)\n" % (e.errno, e.strerror)) + sys.exit(1) + + os.setsid() # @UndefinedVariable - only available in UNIX + + # Make sure I can read my own files and shut out others + prev = os.umask(0) + os.umask(prev and int('077', 8)) + + # Make the child a session-leader by detaching from the terminal + try: + pid = os.fork() # @UndefinedVariable - only available in UNIX + if pid != 0: + os._exit(0) + except OSError as e: + sys.stderr.write("fork #2 failed: %d (%s)\n" % (e.errno, e.strerror)) + sys.exit(1) + + # Write pid + if not nopidfile: + pid = str(os.getpid()) + try: + file(pidfile, 'w').write("%s\n" % pid) + except IOError as e: + sys.stderr.write(u"Unable to write PID file: " + pidfile + ". Error: " + str(e.strerror) + " [" + str(e.errno) + "]") + sys.exit(1) + else: + print("no pid file") + + # Redirect all output + sys.stdout.flush() + sys.stderr.flush() + + devnull = getattr(os, 'devnull', '/dev/null') + stdin = file(devnull, 'r') + stdout = file(devnull, 'a+') + stderr = file(devnull, 'a+') + os.dup2(stdin.fileno(), sys.stdin.fileno()) + os.dup2(stdout.fileno(), sys.stdout.fileno()) + os.dup2(stderr.fileno(), sys.stderr.fileno()) + + +def setupLogger(): + logsFolder = os.path.join(args.datafolder, "logs") + if not os.path.exists(logsFolder): + os.makedirs(logsFolder) + logfilename = os.path.join(logsFolder, "wrapper.log") + if not args.quiet: + print("Logging wrapper output to " + logfilename) + if not args.quiet: + console_logger.setLevel("INFO") + else: + console_logger.setLevel("CRITICAL") + global file_logger + file_logger = RotatingFileHandler(filename=logfilename, maxBytes=100000, backupCount=1) + file_logger.setFormatter(logging.Formatter(LOGGER_DEFAULT_FORMAT)) + file_logger.setLevel("INFO") + logger.addHandler(file_logger) + logger.setLevel("INFO") + + +def update(): + global jarFile + basePath = getBasePath() + updateFolder = os.path.join(args.datafolder, "update") + libFolder = os.path.join(basePath, "lib") + isWindows = any([x for x in os.listdir(basePath) if x.lower().endswith(".exe")]) + logger.debug("Is Windows installation: %r", isWindows) + if not os.path.exists(updateFolder): + logger.critical("Error: Update folder %s does not exist", updateFolder) + sys.exit(-2) + onlyfiles = [f for f in os.listdir(updateFolder) if os.path.isfile(os.path.join(updateFolder, f))] + if len(onlyfiles) != 1 or not onlyfiles[0].lower().endswith("zip"): + logger.critical("Error: Unable to identify update ZIP") + sys.exit(-2) + updateZip = os.path.join(updateFolder, onlyfiles[0]) + + try: + with zipfile.ZipFile(updateZip, "r") as zf: + logger.info("Extracting updated files to %s", basePath) + for member in zf.namelist(): + if not member.lower() == "nzbhydra2" and not member.lower().endswith(".exe"): + logger.debug("Extracting %s to %s", member, basePath) + try: + zf.extract(member, basePath) + except IOError as ex: + logger.critical("Unable to extract file %s to path %s: %s", member, basePath, ex) + sys.exit(-2) + logger.info("Removing update ZIP %s", updateZip) + os.remove(updateZip) + filesInLibFolder = [f for f in os.listdir(libFolder) if os.path.isfile(os.path.join(libFolder, f)) and f.endswith(".jar")] + logger.info("Found %d JAR files in lib folder", len(filesInLibFolder)) + for file in filesInLibFolder: + logger.info("Found file: %s", file) + if len(filesInLibFolder) == 2: + logger.info("Deleting old JAR %s", jarFile) + os.remove(jarFile) + elif len(filesInLibFolder) == 1: + if filesInLibFolder[0] == os.path.basename(jarFile): + logger.warning("New JAR file in lib folder is the same as the old one. The update may not have found a newer version or failed for some reason") + else: + logger.warning("Expected the number of JAR files in folder %s to be 2 but it's %d. This will be fixed with the next start", libFolder, len(filesInLibFolder)) + + except zipfile.BadZipfile: + logger.critical("File is not a ZIP") + sys.exit(-2) + logger.info("Deleting folder " + updateFolder) + shutil.rmtree(updateFolder) + logger.info("Update successful, restarting Hydra main process") + + +def restore(): + global args + dataFolder = args.datafolder + restoreFolder = os.path.join(args.datafolder, "restore") + if not os.path.exists(dataFolder): + logger.critical("Data folder %s does not exist", dataFolder) + sys.exit(-1) + if not os.path.exists(restoreFolder): + logger.critical("Restore folder %s does not exist", restoreFolder) + sys.exit(-1) + try: + oldSettingsFile = os.path.join(dataFolder, "nzbhydra.yml") + logger.info("Deleting old settings file " + oldSettingsFile) + os.remove(oldSettingsFile) + oldDatabaseFile = os.path.join(dataFolder, "database", "nzbhydra.mv.db") + logger.info("Deleting old database file " + oldDatabaseFile) + os.remove(oldDatabaseFile) + except Exception as e: + logger.critical("Error while deleting old data folder: %r", e) + sys.exit(-1) + for f in os.listdir(restoreFolder): + source = os.path.join(restoreFolder, f) + if source.endswith("db"): + dest = os.path.join(dataFolder, "database", f) + else: + dest = os.path.join(dataFolder, f) + logger.info("Moving " + source + " to " + dest) + shutil.move(source, dest) + logger.info("Deleting folder " + restoreFolder) + os.rmdir(restoreFolder) + logger.info("Moved all files from restore folder to data folder") + return True + + +# From https://github.com/pyinstaller/pyinstaller/wiki/Recipe-subprocess +def subprocess_args(include_stdout=True): + # The following is true only on Windows. + if hasattr(subprocess, 'STARTUPINFO'): + # On Windows, subprocess calls will pop up a command window by default + # when run from Pyinstaller with the ``--noconsole`` option. Avoid this + # distraction. + si = subprocess.STARTUPINFO() + try: + import _subprocess + si.dwFlags |= _subprocess.STARTF_USESHOWWINDOW + except: + si.dwFlags |= subprocess.STARTF_USESHOWWINDOW + # Windows doesn't search the path by default. Pass it an environment so + # it will. + env = os.environ.copy() + else: + si = None + env = None + + # ``subprocess.check_output`` doesn't allow specifying ``stdout``:: + # + # Traceback (most recent call last): + # File "test_subprocess.py", line 58, in + # **subprocess_args(stdout=None)) + # File "C:\Python27\lib\subprocess.py", line 567, in check_output + # raise ValueError('stdout argument not allowed, it will be overridden.') + # ValueError: stdout argument not allowed, it will be overridden. + # + # So, add it only if it's needed. + if include_stdout: + ret = {'stdout': subprocess.PIPE} + else: + ret = {} + + # On Windows, running this from the binary produced by Pyinstaller + # with the ``--noconsole`` option requires redirecting everything + # (stdin, stdout, stderr) to avoid an OSError exception + # "[Error 6] the handle is invalid." + ret.update({'stdin': subprocess.PIPE, + 'stderr': subprocess.STDOUT, + 'startupinfo': si, + 'env': env}) + return ret + + +def startup(): + global jarFile, process, args, unknownArgs, consoleLines + basePath = getBasePath() + + readme = os.path.join(basePath, "readme.md") + if not os.path.exists(readme): + logger.critical("Unable to determine base path correctly. Please make sure to run NZBHydra in the folder where its binary is located. Current base path: " + basePath) + sys.exit(-1) + + debugSwitchFile = os.path.join(args.datafolder, "DEBUG") + if os.path.exists(debugSwitchFile): + logger.setLevel("DEBUG") + global file_logger, console_logger + file_logger.setLevel("DEBUG") + console_logger.setLevel("DEBUG") + logger.info("Setting wrapper log level to DEBUG") + + isWindows = platform.system().lower() == "windows" + libFolder = os.path.join(basePath, "lib") + if not os.path.exists(libFolder): + logger.critical("Error: Lib folder %s not found. An update might've failed or the installation folder is corrupt", libFolder) + sys.exit(-1) + + jarFiles = [os.path.join(libFolder, f) for f in os.listdir(libFolder) if os.path.isfile(os.path.join(libFolder, f)) and f.endswith(".jar")] + if len(jarFiles) == 0: + logger.critical("Error: No JAR files found in folder %s. An update might've failed or the installation folder is corrupt", libFolder) + sys.exit(-1) + if len(jarFiles) == 1: + jarFile = jarFiles[0] + else: + latestFile = max(jarFiles, key=os.path.getmtime) + logger.warning("Expected the number of JAR files in folder %s to be 1 but it's %d. Will remove all JARs except the one last changed: %s", libFolder, len(jarFiles), latestFile) + for file in jarFiles: + if file is not latestFile: + logger.info("Deleting file %s", file) + os.remove(file) + jarFile = latestFile + logger.debug("Using JAR file " + jarFile) + + if args.repairdb: + arguments = ["--repairdb", args.repairdb] + elif args.version: + arguments = ["--version"] + else: + arguments = unknownArgs # Those arguments not "caught" by this parser + + # We need to set the ones which we "pass through" separately + if args.restarted and "restarted" not in arguments: + arguments.append("restarted") + if (args.daemon in arguments or args.nobrowser) and "--nobrowser" not in arguments: + arguments.append("--nobrowser") + if args.datafolder and "--datafolder" not in arguments: + arguments.append("--datafolder") + arguments.append(escape_parameter(isWindows, args.datafolder)) + if args.host and "--host" not in arguments: + arguments.append("--host") + arguments.append(args.host) + if args.port and "--port" not in arguments: + arguments.append("--port") + arguments.append(args.port) + if args.baseurl and "--baseurl" not in arguments: + arguments.append("--baseurl") + arguments.append(args.baseurl) + yamlPath = os.path.join(args.datafolder, "nzbhydra.yml") + if args.xmx: + xmx = args.xmx + elif os.path.exists(yamlPath): + with open(yamlPath, "r") as f: + for line in f.readlines(): + index = line.find("xmx:") + if index > -1: + xmx = line[index + 5:].rstrip("\n\r ") + break + else: + logger.warn("Didn't find XMX in YAML file, using default of 256") + xmx = 256 + else: + logger.info("No file nzbhydra.yml found. Using 256M XMX") + xmx = 256 + xmx = str(xmx) + if xmx.lower().endswith("m"): + logger.info("Removing superfluous M from XMX value " + xmx) + xmx = xmx[:-1] + + javaVersion = getJavaVersion(args.java) + + gcLogFilename = (os.path.join(args.datafolder, "logs") + "/gclog-" + datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + ".log").replace("\\", "/") + gcLogFilename = os.path.relpath(gcLogFilename, basePath) + + gcArguments = [] + if javaVersion < 9: + gcArguments = ["-Xloggc:" + gcLogFilename, + "-XX:+PrintGCDetails", + "-XX:+PrintGCTimeStamps", + "-XX:+PrintTenuringDistribution", + "-XX:+PrintGCCause", + "-XX:+UseGCLogFileRotation", + "-XX:NumberOfGCLogFiles=10", + "-XX:GCLogFileSize=5M", + ] + else: + gcArguments = [ + "-Xlog:gc*:file=" + gcLogFilename + "::filecount=10,filesize=5000"] + + java_arguments = ["-Xmx" + xmx + "M", + "-DfromWrapper", + "-XX:TieredStopAtLevel=1", + "-noverify", + "-XX:+HeapDumpOnOutOfMemoryError", + "-XX:HeapDumpPath=" + os.path.join(args.datafolder, "logs") + ] + java_arguments.extend(gcArguments) + if args.debugport: + java_arguments.append("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:" + args.debugport) + if not args.nocolors and not isWindows: + java_arguments.append("-Dspring.output.ansi.enabled=ALWAYS") + if args.debug: + java_arguments.append("-Ddebug=true") + arguments = [args.java] + java_arguments + ["-jar", escape_parameter(isWindows, jarFile)] + arguments + commandLine = " ".join(arguments) + logger.info("Starting NZBHydra main process with command line: %s in folder %s", commandLine, basePath) + if hasattr(subprocess, 'STARTUPINFO'): + si = subprocess.STARTUPINFO() + try: + import _subprocess + si.dwFlags |= _subprocess.STARTF_USESHOWWINDOW + except: + si.dwFlags |= subprocess.STARTF_USESHOWWINDOW + else: + si = None + # todo check shell=True/False for linux and windows + # shell=true: pass string, shell=false: pass arguments + try: + process = subprocess.Popen(arguments, shell=False, cwd=basePath, bufsize=-1, **subprocess_args()) + + # atexit.register(killProcess) + while True: + # Handle error first in case startup of main process returned only an error (on stderror) + nextline = process.stdout.readline() + if nextline == '' and process.poll() is not None: + break + if nextline != "": + consoleLines.append(nextline) + + if len(consoleLines) > 100: + consoleLines = consoleLines[-100:] + if not args.quiet: + sys.stdout.write(nextline) + sys.stdout.flush() + process.wait() + + return process + except Exception as e: + logger.error("Unable to start process; make sure Java is installed and callable. Error message: " + str(e)) + + +def escape_parameter(is_windows, parameter): + return parameter # TODO FInd out when to actually escape with windows, I think when shell=True is used + # return '"' + parameter + '"' if is_windows else parameter + + +def list_files(startpath): + for root, dirs, files in os.walk(startpath): + level = root.replace(startpath, '').count(os.sep) + indent = ' ' * 4 * (level) + logger.info('{}{}/'.format(indent, os.path.basename(root))) + subindent = ' ' * 4 * (level + 1) + for f in files: + logger.info('{}{}'.format(subindent, f)) + + +def handleUnexpectedExit(): + global consoleLines + message = "Main process shut down unexpectedly. If the wrapper was started in daemon mode you might not see the error output. Start Hydra manually with the same parameters in the same environment to see it" + for x in consoleLines: + if "Unrecognized option: -Xlog" in x: + message = "You seem to be trying to run NZBHydra with a wrong Java version. Please make sure to use at least Java 9" + elif "java.lang.OutOfMemoryError" in x: + message = "The main process has exited because it didn't have enough memory. Please increase the XMX value in the main config" + logger.error(message) + sys.exit(-1) + + +def getJavaVersion(javaExecutable): + if hasattr(subprocess, 'STARTUPINFO'): + si = subprocess.STARTUPINFO() + try: + import _subprocess + si.dwFlags |= _subprocess.STARTF_USESHOWWINDOW + except: + si.dwFlags |= subprocess.STARTF_USESHOWWINDOW + else: + si = None + # todo check shell=True/False for linux and windows + # shell=true: pass string, shell=false: pass arguments + try: + lines = [] + process = subprocess.Popen([javaExecutable, "-version"], shell=False, bufsize=-1, **subprocess_args()) + + # atexit.register(killProcess) + while True: + # Handle error first in case startup of main process returned only an error (on stderror) + nextline = process.stdout.readline() + if nextline == '' and process.poll() is not None: + break + if nextline != "": + lines.append(nextline) + process.wait() + if len(lines) == 0: + raise Exception("Unable to get output from call to java -version") + versionLine = lines[0].replace("\n", "").replace("\r", "") + match = re.match('(java|openjdk) version "(?P\d+)(\.(?P\d+)\.(?P\d)+[\-_\w]*)?".*', versionLine) + if match is None: + raise Exception("Unable to determine java version from string " + lines[0]) + javaMajor = int(match.group("major")) + javaMinor = int(match.group("minor")) if match.group("minor") is not None else 0 + javaVersion = 0 + if (javaMajor == 1 and javaMinor < 8) or (javaMajor > 1 and javaMajor < 8): + logger.error("Found incompatible java version '" + versionLine + "'") + sys.exit(-1) + if javaMajor == 1 and javaMinor == 8: + javaVersion = 8 + else: + javaVersion = javaMajor + logger.info("Determined java version as '%d' from version string '%s'", javaVersion, versionLine) + return javaVersion + except Exception as e: + logger.error("Unable to determine java version; make sure Java is installed and callable. Error message: " + str(e)) + sys.exit(-1) + + +if __name__ == '__main__': + GracefulKiller() + parser = argparse.ArgumentParser(description='NZBHydra 2') + parser.add_argument('--java', action='store', help='Full path to java executable', default="java") + parser.add_argument('--debugport', action='store', help='Set debug port to enable remote debugging', default=None) + parser.add_argument('--daemon', '-D', action='store_true', help='Run as daemon. *nix only', default=False) + parser.add_argument('--pidfile', action='store', help='Path to PID file. Only relevant with daemon argument', default="nzbhydra2.pid") + parser.add_argument('--nopidfile', action='store_true', help='Disable writing of PID file. Only relevant with daemon argument', default=False) + parser.add_argument('--nocolors', action='store_true', help='Disable color coded console output (disabled on Windows by default)', default=False) + parser.add_argument('--listfiles', action='store', help='Lists all files in given folder and quits. For debugging docker', default=None) + + # Pass to main process + parser.add_argument('--datafolder', action='store', help='Set the main data folder containing config, database, etc using an absolute path', default=os.path.join(getBasePath(), "data")) + parser.add_argument('--xmx', action='store', help='Java Xmx setting in MB (e.g. 256)', default=None) + parser.add_argument('--quiet', action='store_true', help='Set to disable all console output', default=False) + parser.add_argument('--host', action='store', help='Set the host') + parser.add_argument('--port', action='store', help='Set the port') + parser.add_argument('--baseurl', action='store', help='Set the base URL (e.g. /nzbhydra)') + parser.add_argument('--nobrowser', action='store_true', help='Set to disable opening of browser at startup', default=False) + parser.add_argument('--debug', action='store_true', help='Start with more debugging output', default=False) + # Main process actions + parser.add_argument('--repairdb', action='store', help='Attempt to repair the database. Provide path to database file as parameter') + parser.add_argument('--version', action='store_true', help='Print version') + + # Internal logic + parser.add_argument('--restarted', action='store_true', default=False, help=argparse.SUPPRESS) + + args, unknownArgs = parser.parse_known_args() + setupLogger() + + # Delete old files from last backup + oldFiles = [f for f in os.listdir(getBasePath()) if os.path.isfile(os.path.join(getBasePath(), f)) and f.endswith(".old")] + if len(oldFiles) > 0: + logger.info("Deleting .old files from last update") + for f in oldFiles: + logger.debug("Deleting file %s", f) + os.remove(f) + + if not (os.path.isabs(args.datafolder)): + args.datafolder = os.path.join(os.getcwd(), args.datafolder) + logger.info("Data folder path is not absolute. Will assume " + args.datafolder + " was meant") + + # Delete old control id file if it exists. Shouldn't ever exist or if it does it should be overwritten by main process, but who knows + controlIdFilePath = os.path.join(args.datafolder, "control.id") + if os.path.exists(controlIdFilePath): + os.remove(controlIdFilePath) + doStart = True + + if "--version" in unknownArgs or "--help" in unknownArgs: + # no fancy shit, just start the file + startup() + elif args.listfiles is not None: + path = args.listfiles + curpath = os.path.dirname(os.path.realpath(__file__)) + if not os.path.isabs(path): + path = os.path.join(curpath, path) + logger.info("Listing files in %s", path) + list_files(os.path.dirname(path)) + else: + if args.daemon: + logger.info("Daemonizing...") + daemonize(args.pidfile, args.nopidfile) + + while doStart: + process = startup() + + if process is None: + logger.debug("No process found, exiting") + sys.exit(-1) + + if terminatedByWrapper: + logger.debug("Shutting down because child process was terminated by us after getting signal") + sys.exit(0) + + if process.returncode == 1: + handleUnexpectedExit() + args.restarted = True + + # Try to read control code from file because under linux when started from the wrapper the return code is always 0 + controlCode = 0 + try: + with open(controlIdFilePath, "r") as f: + controlCode = int(f.readline()) + logger.debug("Control code read from file %s: %d", controlIdFilePath, controlCode) + except Exception as e: + controlCode = process.returncode + if not (args.version or args.repairdb): + logger.warn("Unable to read control ID from %s: %s. Falling back to process return code %d", controlIdFilePath, e, controlCode) + if os.path.exists(controlIdFilePath): + try: + logger.debug("Deleting old control ID file %s", controlIdFilePath) + os.remove(controlIdFilePath) + except Exception as e: + logger.error("Unable to delete control ID file %s: %s", controlIdFilePath, e) + + if controlCode == 11: + logger.info("NZBHydra main process has terminated for updating") + update() + doStart = True + elif controlCode == 22: + logger.info("NZBHydra main process has terminated for restart") + doStart = True + elif controlCode == 33: + logger.info("NZBHydra main process has terminated for restoration") + doStart = restore() + logger.info("Restoration successful") + doStart = True + elif args.version or args.repairdb: + # Just quit without further ado, help was printed by main process + doStart = False + else: + logger.info("NZBHydra main process has terminated for shutdown") + doStart = False Property changes on: head/news/nzbhydra2/files/nzbhydra2wrapper.py.in ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/news/nzbhydra2/pkg-descr =================================================================== --- head/news/nzbhydra2/pkg-descr (nonexistent) +++ head/news/nzbhydra2/pkg-descr (revision 491596) @@ -0,0 +1,6 @@ +NZBHydra 2 is a meta search for NZB indexers. It provides easy access to a +number of raw and newznab based indexers. You can search all your indexers +from one place and use it as an indexer source for tools like Sonarr, +Radarr or CouchPotato. + +WWW: https://github.com/theotherp/nzbhydra2 Property changes on: head/news/nzbhydra2/pkg-descr ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property