diff options
| author | Christian Breunig <christian@breunig.cc> | 2025-07-30 21:40:11 +0100 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2025-07-30 21:40:11 +0100 |
| commit | fba27cac855cf196a394ac4bb955f9f7402982cb (patch) | |
| tree | c939b43b7157c3924d53604380e472bbdfad2d85 /python | |
| parent | 2ac530f45d9d5f2ab7bafcc1de65284d8eef85bb (diff) | |
| download | vyos-1x-fba27cac855cf196a394ac4bb955f9f7402982cb.tar.gz vyos-1x-fba27cac855cf196a394ac4bb955f9f7402982cb.zip | |
serial: T7484: treat unavailable serial console devices as non-fatal
Instead of failing or starting agetty on an invalid device, we now check
whether the specified serial console device is a valid TTY. If it's not, we
display a warning to the user and skip starting the agetty process.
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/utils/serial.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/python/vyos/utils/serial.py b/python/vyos/utils/serial.py index 68aad676e..36b483e91 100644 --- a/python/vyos/utils/serial.py +++ b/python/vyos/utils/serial.py @@ -116,3 +116,16 @@ def restart_login_consoles(prompt_user=False, quiet=True, devices: List[str]=[]) cmd(f'systemctl stop {unit_name}') return True + +def is_tty(name: str) -> bool: + """ Check if a given device file (e.g. /dev/ttyS0) is a TTY (teletypewriter) + device in Linux + """ + import os + path_tty = f'/dev/{name}' + if os.path.exists(path_tty): + with open(path_tty, 'rb') as f: + fd = f.fileno() + # True if filename is a TTY + return os.isatty(fd) + return False |
