Commit Graph

33 Commits

Author SHA1 Message Date
Carter Li 76b8446d15 InitSystem (SunOS): fix crashes 2024-06-17 15:18:02 +08:00
Carter Li 6473db86a3 SunOS: support shell & terminal detection 2024-06-17 14:47:47 +08:00
Carter Li 898bf1edd9 SunOS: support InitSystem 2024-06-17 14:47:47 +08:00
李通洲 44257b7ede Shell: don't try to get arg1 if python was executed without extra args 2024-05-30 09:58:06 +08:00
李通洲 d7e9094297 Shell (macOS): better xonsh detection
Fix #977
2024-05-30 09:31:25 +08:00
李通洲 e8dc500f24 Processing (Linux): return errors more actively
fix assertion errors
2024-05-29 16:24:18 +08:00
李通洲 90690ba315 InitSystem: add new module
Fix #974
2024-05-29 11:14:39 +08:00
李通洲 3811bb1be4 TerminalShell: move process info query logic into common place 2024-05-28 23:43:15 +08:00
李通洲 36a0c273f9 Processing: suggest increasing --processing-timeout when child process timeouts 2024-04-30 14:52:47 +08:00
李通洲 947d2ff0a9 Processing (Linux): return error when command is not found 2024-01-18 14:54:14 +08:00
李通洲 82581aa9e4 Processing: increase buffer size 2023-12-04 15:10:58 +08:00
apocelipes 53922779ba fix(Common): fixes for ffProcessAppendOutput
- Use pipe2 on Linux and BSDs, which can set all flags through a single syscall.
- macOS/darwin does not support pipe2, add a wrapper for it.
- Close pipes when fork() failed. These fds should be closed when
  the function returns.
- Set O_CLOEXEC at pipes, the exec() family of functions will close
  this fds automatically.
- Use _exit instead of exit. Exit calls the callbacks registered by atexit
  and flushes the stdio's buffer, which can lead to some unexpected behavior,
  especially after an exec syscall failure.
- Fix timeout.
- Not use non-blocking IO. because we only wait for one file, and cannot
  do other things during waiting.
2023-11-30 10:10:40 +08:00
Marius Messerschmidt 975081aa27 ClangTidy: make pid pointer const 2023-11-18 12:31:57 +01:00
李通洲 c504096181 Processing (Linux): fix hanging if a child process prints to both stdout and stderr 2023-10-31 14:06:08 +08:00
李通洲 bed1b4cf0f Global: move general options to a new separate folder 2023-10-25 13:39:13 +08:00
李通洲 88c12486bf Processing (Linux): always set LANG to C before executing child process 2023-09-27 15:02:55 +08:00
李通洲 2aa637ecc8 Processing (Linux): don't return on POLLHUP
In case child process finishs too fast
2023-07-24 21:30:41 +08:00
李通洲 a9466654b2 Processing (macOS): fix compiling 2023-07-15 08:25:57 +08:00
李通洲 87ebdef8df Processing (Linux): don't leave zombie processes 2023-07-15 00:33:38 +08:00
李通洲 dfefb802d0 Processing (Linux): always poll before read 2023-07-11 20:28:59 +08:00
李通洲 11adefd839 Processing (Windows): fix hanging when executing cygwin processes 2023-07-11 19:45:16 +08:00
李通洲 ced2347829 Processing (Linux): fix potential hang when reading large buffer
`write` in child process blocks when the pipe is full. However because we are `waitpid`ing, we don't read the pipe, so that the pipe is never free. Therefore `write` in child process blocks forever and `waitpid` hangs.

Fix #493
2023-07-11 11:13:13 +08:00
李通洲 7dae59ee92 Processing: add --processing-timeout 2023-07-10 22:20:30 +08:00
李通洲 d53b584ba2 Processing (Windows): support timeout 2023-07-10 21:02:13 +08:00
李通洲 9c9ba2f1a1 CI (Linux): fix build on musl 2023-07-10 18:10:59 +08:00
李通洲 c1b2ebc66e CI: fix compiling errors 2023-07-10 18:04:21 +08:00
李通洲 ad9103c767 Processing (Linux): support timeout 2023-07-10 17:12:18 +08:00
李通洲 e611ce5733 Processing (Linux): don't hang on waitpid(2) 2023-07-10 15:26:10 +08:00
李通洲 d5f0ccae88 LM (Linux): try fixing LightDM version detection 2023-07-10 09:39:24 +08:00
李通洲 52c304ecae IO (Linux): add detailed error messages for ffProcessAppendStdOut 2023-02-23 13:32:12 +08:00
Linus Dierheimer a1ea7804f3 IO: Separate platform specific implementations 2023-01-28 12:40:12 +01:00
李通洲 b739d94f23 Command: an attempt to add a new module which can run custom shell scripts 2023-01-14 01:27:54 +08:00
李通洲 09a2f96cf0 TerminalShell: add support for Windows 2022-10-09 15:37:14 +08:00