В Linux и, по крайней мере, с OpenJDK , значение, возвращаемое функцией exitValue ()
, такое же, как и в оболочке zsh
или bash
и большинство sh
реализаций (но не ksh93
или yash
) назначат его $?
переменная.
То есть, это:
exit (n)
или вернуть n
из main ()
: младшие 8 бит из n
( n & 0xFF
). n
: n + 128
. Итак, если вы получили число 130, возникает двусмысленность в том, что вы не знаете, умирает ли процесс из-за сигнала 2 или только что выполнил exit (130)
.
Однако, поскольку так много оболочек следуют этому соглашению о наличии 128 + signal_number
, программы знают, что следует избегать использования этих значений выше 128 для своего кода выхода (или когда они делают exit (130)
, это сообщение о смерти ребенка, который умирает от сигнала 2, как некоторые снаряды при определенных обстоятельствах).
Итак, здесь, скорее всего, процесс умер из-за сигнала 2. Вы можете определить, какой это был сигнал, запустив:
$ kill -l 130
INT
в приглашении оболочки в стиле POSIX.
В большинстве систем сигнал 2 будет SIGINT. Это сигнал, который отправляется группе процессов переднего плана терминала, когда вы нажимаете Ctrl-C в этом терминале.
$ sleep 10
^C
$ echo "$?"
130
SIGINT должен быть зарезервирован для прерывания терминала, и приложения не должны в противном случае отправлять его другим процессам, но ничто не мешает им это делать, поэтому все еще возможно, что что-то сделало kill (postgres_pid, SIGINT)
( kill -s INT
или kill -INT
или kill -2
в оболочке).
$ sleep 10 &
[1] 20171
$ kill -s INT "$!"
[1] + interrupt sleep 10
$ wait "$!"
$ echo "$?"
130
Как сказано в longDescription для chrome-gnome-shell
, вам нужно будет установить конкретный gnome3 и конкретный параметр firefox. Для этого включите следующее в /etc/nixos/configuration.nix
и перестройте:
nixpkgs.config.firefox.enableGnomeExtensions = true;
services.gnome3.chrome-gnome-shell.enable = true;
(К сожалению, эти опции отсутствуютв списке наhttps://nixos.org/nixos/options.html)
Вам не нужно явно указывать chrome-gnome-shell
и gnome3.gnome-shell-extensions
как системные пакеты, так как они будут задействованы как зависимости. Расширение Firefox «Интеграция с GNOME Shell» по-прежнему должно быть установлено пользователем через Firefox, как и вы.