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