SMC_RUN(8)
β¨ SMC_RUN π (that's section 8 of the Linux Programmer's Manual, bestie)
Okay so picture this: you've got a program, right, and it wants to do TCP things, and you're like "bestie... what if SMC instead?" That's literally the whole gig. smc_run starts a program with the ability to use SMC as its networking protocol. Iconic behavior only. π¦
πΈ SYNOPSIS πΈ
smc_run [-dhrtv][-r SIZE] [-t SIZE] program parameters
π DESCRIPTION π
smc_run starts a program β you pass it as the argument, along with all its own parameters β and lets that program's TCP socket connections use the SMC protocol. Main character energy for your sockets, no cap. β¨
Here's the tea on how it works: the script specifies libsmc-preload.so as a preload shared library for the Linux program loader π§, and it may adjust the transmit and receive buffer sizes to SIZE by setting the socket options SO_SNDBUF and SO_RCVBUF respectively. And SIZE? You can give it in Bytes, or use the metric prefixes k and m β like 8k...1024k/1m. Slay, flexible units. π
The preload library libsmc-preload.so intercepts a few TCP socket calls and triggers the equivalent execution through SMC. Sneaky? No. Efficient? Yes. π₯
Note, bestie, listen: if it's not possible to usesmc_run, you can installlibsmc-preload.soas a preload library via the environment variableLD_PRELOAD. And use the environment variablesSMC_SNDBUFandSMC_RCVBUFto request specific transmit and receive buffer sizes respectively. Supports metric prefixeskandm. π
The following options can be specified:
-dβ display additional diagnostic messages during the program execution. Detective mode π΅οΈββοΈ-hβ display a brief usage information. Short and sweet, we love a quick rundown π-r SIZEβ request receive buffer sizeSIZE. Notes, because details matter:- May be overridden by the application. π
- Increases
net.core.rmem_maxif necessary.
-t SIZEβ request transmit buffer sizeSIZE. Notes again, same vibe:- May be overridden by the application. π
- Increases
net.core.wmem_maxif necessary.
-vβ display version information. Gotta know what you're running, bestie β
π RETURN CODES π
On success, the smc_run command returns 0. π If an error occurs, smc_run writes a message to stdout and completes with a return code other than 0 β so, like, not a slay.
1β an invalid option was specified. π (we've all been there)
π EXAMPLES π
Run program foo using SMC, requesting a receive buffer size of 512KB:
$ smc_run -r 512k ./foo
Look at her go. π
π«Ά SEE ALSO π«Ά
af_smc(7), smc_chk(8) smc_pnet(8), smc_rnics(8), smcd(8), smcr(8), smcss(8), tcp(7)
That's the whole page, bestie β brought to you by smc-tools, dated January 2017, and yes this is still SMC_RUN(8) in case you lost track. Mwah. ππ
π¦ where this page comes from
- centos-stream 10: smc-tools 1.8.8-1.el10 Β· EPL-1.0
- centos-stream 9: smc-tools 1.8.8-1.el9 Β· EPL-1.0
- centos-stream 9: smc-tools 1.8.8-1.el9 Β· EPL-1.0
- fedora 43: smc-tools 1.8.5-2.fc43 Β· EPL-1.0
- fedora 43: smc-tools 1.8.5-2.fc43 Β· EPL-1.0
- fedora 44: smc-tools 1.8.6-2.fc44 Β· EPL-1.0
- fedora 44: smc-tools 1.8.6-2.fc44 Β· EPL-1.0
- opensuse-leap 16.0: smc-tools 1.8.8-160000.1.1 Β· EPL-1.0
- opensuse-leap 16.0: smc-tools 1.8.8-160000.1.1 Β· EPL-1.0
- opensuse-leap 16.0: smc-tools 1.8.8-160000.1.1 Β· EPL-1.0
- opensuse-leap 16.0: smc-tools 1.8.8-160000.1.1 Β· EPL-1.0
- ubuntu jammy: smc-tools 1.7.0-0ubuntu1 Β· EPL-1.0
- ubuntu jammy: smc-tools 1.7.0-0ubuntu1.2 Β· EPL-1.0
- ubuntu noble: smc-tools 1.8.3-0ubuntu1 Β· EPL-1.0
- ubuntu noble: smc-tools 1.8.3-0ubuntu1.1 Β· EPL-1.0
- ubuntu questing: smc-tools 1.8.5-0ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms