我的 1989 Mac SE/30 通过空调制解调器 USB RS232 适配器使用 PPP 连接到我的 Debian 10 路由器。
当我想要连接时,我首先必须从另一台机器通过 SSH 进入 debian 并运行
# pppd nodetach /dev/ttyUSB0 57600 -crtscts
此外,如果 Mac 断开连接然后pppd
退出,为了重新连接,我必须再次执行相同的操作。
可以自动pppd
收听吗ttyUSB0
?并熬夜?
(我找到的所有文档都是为了使用 PPP 作为拨号互联网连接的客户端,而不是作为服务器。)
更新
mini31 # pwd
/etc/systemd/network
mini31 # ls -l
total 4
-rw-r--r-- 1 root root 187 Jun 14 12:12 pppd-ttyUSB0.service
mini31 # cat pppd-ttyUSB0.service
[Service]
ExecStart=/usr/sbin/pppd nodetach /dev/ttyUSB0 57600 -crtscts
Restart=always
RestartSec=0
[Unit]
Description=pppd on ttyUSB0 for SE/30
After=network.target
Wants=network.target
mini31 # systemctl status pppd-ttyUSB0
Unit pppd-ttyUSB0.service could not be found.
mini31 #
更新2
看起来/etc/systemd/system
是唯一有效的文件夹。
此外,您必须:
# systemctl daemon-reload
mini31 # systemctl status pppd-ttyUSB0
● pppd-ttyUSB0.service - pppd on ttyUSB0 for Macs
Loaded: loaded (/etc/systemd/system/pppd-ttyUSB0.service; static; vendor preset: enabled)
Active: inactive (dead)
mini31 # systemctl enable pppd-ttyUSB0
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
instance name specified.
mini31 # systemctl start pppd-ttyUSB0
(不知道这些废话enable
是关于什么的。)
答案1
创建一个服务运行这个守护进程。在 systemd 服务中,您可以使用该Restart=
选项在服务退出时自动再次启动该服务。
[Service]
ExecStart=-/usr/bin/pppd nodetach /dev/ttyUSB0 57600 -crtscts
Restart=always
RestartSec=0
您的情况实际上与 非常相似[email protected]
,只是使用 pppd 而不是 getty,后者通常在指定的 tty 处等待登录提示。因此,查看该单元以获取灵感可能会很有用 - 例如,您可能希望将其设为模板单元(命名pppd@
并用作/dev/%i
设备路径);您可能希望包含Conflicts=getty@%i.service
在 [Unit] 部分中;等等。
(事实上,在“sysvinit”环境中,我建议为 pppd 创建一个 /etc/inittab 条目,这样它就会像 getty 一样由 init 自动重新启动。)