Во время первого относящегося к двухтысячному году блица, в котором поставщики программного и аппаратного обеспечения были обязаны сертифицировать свои продукты как "двухтысячный год, совместимый", чтобы быть проданным (я помню сетевые кабели на PC Connection, сертифицированном совместимая Y2K) много компаний сделало подробные аудиты всего путем установки часов в будущем и тестировании.
В то время, так как стоимость тестирования была так высока, они почти всегда тестировали с несколькими датами, такими как 01.01.99 (некоторые разработчики, возможно, использовали 99 в качестве сигнальной метки), 31.12.99, 1/1/00, leapness 2000, 19.01.38, и многие другие. Посмотрите здесь для утомительного списка.
Таким образом я полагаю, что любое важное программное обеспечение, которое было вокруг в 1999, не будет, вероятно, иметь 2 038 ошибок, но новое программное обеспечение, записанное с тех пор неосведомленными программистами, могло бы. После того, как целые относящиеся к двухтысячному году программисты разгрома обычно становились намного больше знающий о проблемах кодирования даты, таким образом, это вряд ли будет столь большое влияние, как двухтысячный год был (который, сам по себе, был чем-то вроде разочарования).
pkill и pgrep, конечно, существуют в Cygwin в procps пакете (можно искать cygwin пакеты здесь).
Это, кажется, работает на меня,
tony:~$ nohup sleep 100983 &
[1] 5476
tony:~$ nohup: ignoring input and appending output to `nohup.out'
tony:~$
tony:~$ ps -ef | grep sleep
tony 5476 2696 2 23:28:53 /usr/bin/sleep
tony:~$ pkill -f sleep
[1]+ Terminated nohup sleep 100983
tony:~$
и
tony:~$ nohup sleep 837746 &
[1] 228
tony:~$ nohup: ignoring input and appending output to `nohup.out'
tony:~$ pgrep -f 837746
228
tony:~$ pkill -f 837746
[1]+ Terminated nohup sleep 837746
tony:~$
Обновление: хорошо, протестированный с Java. Выполнение Java из командной строки Cygwin не приводит к строке Java, помещаемой в /proc/<pid>/cmdline
, это просто содержит -bash
. Это, кажется, ограничение Cygwin.
tony:~$ java -Dsomething=valid -jar Captor.jar &
[1] 2700
tony:~$ ps -ef
UID PID PPID TTY STIME COMMAND
tony 4164 1 ? Aug 21 /usr/bin/mintty
tony 4676 4164 0 Aug 21 /usr/bin/bash
tony 5776 4676 0 Aug 23 /usr/bin/ssh
tony 5148 1 ? 23:53:03 /usr/bin/mintty
tony 5332 5148 1 23:53:03 /usr/bin/bash
tony 5816 1 ? 00:04:16 /usr/bin/mintty
tony 5432 5816 2 00:04:16 /usr/bin/bash
tony 2700 5432 2 00:04:34 /cygdrive/c/Windows/system32/java
tony 2232 5432 2 00:04:39 /usr/bin/ps
tony:~$ pgrep -f something
tony:~$ cat /proc/2700/cmdline
-bash
tony:~$
tony:~$ cat /proc/2700/exename
/cygdrive/c/Windows/system32/java
Я подозреваю поэтому, ответ - Вы, не может сделать этого с инструментом Cygwin, Вам был бы нужен Windows определенный инструмент.
Утилиты Cygwin работают как Linux, но они только работают над процессами Cygwin. Для процессов Windows необходимо использовать утилиты Windows, такие как те от Sysinternals. PsKill может уничтожить процессы по имени.
В более старых версиях Cygwin существует a procps
пакет, который можно установить для получения той же функциональности с теми же командами.
В более новых версиях Cygwin, procps
пакет больше не существует и заменяется пакетом procps-ng
.
procps-ng
. – Abdull 22.09.2016, 11:54apt-cyg install procps-ng
с новейшим cygwin – Timo 20.11.2017, 17:09