Comments 10
Можно проще:
java -Dmy_daemon=true …
ps ax | grep my_daemon
java -Dmy_daemon=true …
ps ax | grep my_daemon
Такая короткая программа, а аж две ошибки!
1. man getenv: As typically implemented, getenv() returns a pointer to a string within the environment list. The caller must take care not to modify this string, since that would change the environment of the process.
2. Даже если изменяем полученную строку, откуда гарантия, что можно писать за пределы существующей строки? (настоящий размер блока памяти мы ведь не знаем!)
1. man getenv: As typically implemented, getenv() returns a pointer to a string within the environment list. The caller must take care not to modify this string, since that would change the environment of the process.
2. Даже если изменяем полученную строку, откуда гарантия, что можно писать за пределы существующей строки? (настоящий размер блока памяти мы ведь не знаем!)
Я когда с такой проблемой сталкивался сделал простую bash обертку для java программы, а ее pid узнавал как дочерний пид от обертки. Ну а на основе этого сделать демона — пара пустяков. Хотя конечно если хочется смотреть в top, такой подход не решит проблему.
Кстати, в качестве argv[0] в execv тоже нужно указывать имя запускаемого приложения…
Sign up to leave a comment.
Мини-wrapper для Java приложений под *nix