iceccd(1)

πŸ“¦
version 1.4.0 Β· 3 versions
, in epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– iceccd β€” the Icecream daemon, bestie edition πŸ’–

okay so you found iceccd(1) and you're like "what is this little guy" β€” it's the Icecream daemon, and it's genuinely iconic. let's get into it πŸ’…


✨ SYNOPSIS ✨

iceccd [-b env-basedir] [--cache-limit MB] [-d] [-l log-file] [-m max-processes] [-N hostname] [-n node-name] [--nice level] [--no-remote] [-s scheduler-host] [-u user] [-v[v[v]]]

πŸ¦‹ DESCRIPTION πŸ¦‹

so. the Icecream daemon has to run on every single node that's part of the Icecream compile cluster, no exceptions, periodt. it receives compile jobs and executes them inside a chroot environment. and here's the cute part: the compile clients send their compile environment over the first time they send a job to a particular daemon β€” so the daemon's environment doesn't have to match the client's environment at all. matching outfits? not required, we love a low-maintenance bestie πŸ’–

the daemon also has to run on the clients that are sending compile jobs into the Icecream network. and if a node should be able to send compile jobs but should never receive any, you start the daemon with the option -m 0. that's the move 🫢

all Icecream daemons need to have contact with the Icecream scheduler, which controls the distribution of data between compile nodes. normally the daemon will just automatically find the right scheduler β€” it's giving main character energy, it knows where to go. but if that's not happening, you can explicitly specify the name of the Icecream network and the host running the scheduler. you got this πŸ‘‘


🌸 OPTIONS 🌸

  • -b, --env-basedir env-basedir β€” base directory where compile environments sent to the daemon by the compile clients get stored. that's its lil home 🏠
  • --cache-limit MB β€” the max size, in Mega Bytes, of the cache used to store compile environments of compile clients. yes, Mega Bytes, capital letters, respect it ✨
  • -d, --daemonize β€” detach the daemon from the shell. bye bestie, go be free πŸ¦‹
  • -h, --help β€” print the help message and exit. the classic "wait what do i do" button πŸ™ˆ
  • -l, --log-file log-file β€” the name of the file where log output gets written. receipts, but make it text πŸ“
  • -m, --max-processes max-processes β€” the maximum number of compile jobs started in parallel on the machine running the daemon. this is your multitasking limit, don't overcommit πŸ’€
  • -N hostname β€” the name of the icecream host on the network.
  • -n, --name, --netname net-name β€” the name of the icecream network the daemon should connect to. there has to be a scheduler running for that network under the same network name. no scheduler, no vibes, no connection πŸ”₯
  • --nice level β€” the level of niceness to use. default is 5. be nice!! πŸ₯Ί
  • --no-remote β€” prevents jobs from other nodes being scheduled on this one. this node said "not today, i'm booked" πŸ’…
  • -s, --scheduler-host scheduler-host β€” the name of the host running the scheduler for the network the daemon should connect to. this option might help if the scheduler can't broadcast its presence to the clients because of firewall settings or similar reasons β€” and when this is enabled, the scheduler should use --persistent-client-connection. noted, bestie πŸ“Œ
  • -u, --user-uid user β€” specify the system user used by the daemon, which must be different than root. if you don't specify it, the daemon defaults to the icecc system user if available, or nobody if not. so like, it picks its own fit if you don't pick one for it πŸŽ€
  • -v, -vv, -vvv β€” control the verbosity of the daemon. the more v, the more verbose. it's giving "how much do you want to know" and honestly the answer is always more ⭐

πŸ‘€ SEE ALSO πŸ‘€

icecream(7), icecc-scheduler(1), icemon(1) β€” go read the whole friend group πŸ’œ


πŸ‘‘ AUTHOR πŸ‘‘

Cornelius Schumacher


and that's the whole page, bestie!! source/version: iceccd(1), dated April 21th, 2005 (yes we're keeping the typo, it's part of the lore now 😭). slay, compile responsibly, and don't run it as root πŸ’–πŸŒˆπŸ«Ά