linux ulimit com java não funciona corretamente

Eu corro código no linux ubuntu 17.10

public class TestExec {
public static void main(String[] args) {
    try {
        Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "ulimit", "-n"});
        BufferedReader in = new BufferedReader(
                            new InputStreamReader(p.getInputStream()));
        String line = null;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

esse código retorna "ilimitado"

mas sempre que executo o comando do terminal, recebo 1024.

Por que esses números são diferentes?

questionAnswers(1)

yourAnswerToTheQuestion