mirror of
https://git.suyu.dev/suyu/AppImageKit-checkrt.git
synced 2025-12-25 00:34:41 +01:00
I don't know why, but getppid() returns wrong result for me when application is started
This commit is contained in:
parent
07e851fcc8
commit
b2ac83a76e
4 changed files with 40 additions and 7 deletions
|
|
@ -41,17 +41,34 @@
|
|||
|
||||
old_env = getenv("PYTHONPATH") ?: "";
|
||||
SET_NEW_ENV(new_pythonpath, appdir_s + strlen(old_env), "PYTHONPATH=%s/usr/share/pyshared/:%s", appdir, old_env);
|
||||
@@ -197,15 +208,12 @@
|
||||
@@ -196,16 +207,29 @@
|
||||
/* Otherwise may get errors because Python cannot write __pycache__ bytecode cache */
|
||||
putenv("PYTHONDONTWRITEBYTECODE=1");
|
||||
|
||||
/* Run */
|
||||
- /* Run */
|
||||
- ret = execvp(exe, outargptrs);
|
||||
-
|
||||
+ /* Set pid & ppid */
|
||||
+ pid_t pid = getpid();
|
||||
+ pid_t ppid = getppid();
|
||||
|
||||
- int error = errno;
|
||||
+ execvp(exe, outargptrs);
|
||||
+ int pid_len = snprintf(NULL, 0, "%d", pid);
|
||||
+ int ppid_len = snprintf(NULL, 0, "%d", ppid);
|
||||
|
||||
- if (ret == -1)
|
||||
- die("Error executing '%s': %s\n", exe, strerror(error));
|
||||
+ char *s_pid = malloc(pid_len + 1);
|
||||
+ snprintf(s_pid, pid_len + 1, "%d", pid);
|
||||
+
|
||||
+ char *s_ppid = malloc(ppid_len + 1);
|
||||
+ snprintf(s_ppid, ppid_len + 1, "%d", ppid);
|
||||
+
|
||||
+ setenv("PID", s_pid, 1);
|
||||
+ setenv("PPID", s_ppid, 1);
|
||||
+
|
||||
+ /* Run */
|
||||
+ execvp(exe, outargptrs);
|
||||
+
|
||||
+ free(optional_ld_library_path);
|
||||
+ if (optional_ld_preload)
|
||||
+ free(optional_ld_preload);
|
||||
|
|
@ -61,7 +78,7 @@
|
|||
free(usr_in_appdir);
|
||||
free(new_pythonhome);
|
||||
free(new_path);
|
||||
@@ -215,5 +223,16 @@
|
||||
@@ -215,5 +239,16 @@
|
||||
free(new_perllib);
|
||||
free(new_gsettings_schema_dir);
|
||||
free(new_qt_plugin_path);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue