This classic use case is not tied to a job but tied to a Jenkins node.
And for this kind of feature, you can add an initialization Groovy script.
The Groovy script will be automatically loaded and executed at the Jenkins node startup.

Groovy script? I think I speak for many others when I say that I have enough languages to worry about as it is, and have no desire to deal with a JVM-specific scripting language that so far I can get away with never having to use. :)

This plugin is aimed at restarting the job at Jenkins startup and not at node startup. What is exactly your need? Maybe put an initialization script or use the ScriptTrigger plugin could meet your needs.

Ok I understand. Do you want the job starts whatever it is a start of the master or a slave, and/or do you want to have the ability to restrict to some node labels?
And for my personal information, what is your functional use case?

Thanks you, but can you tell me how do i update my plugin to version 2.0, i installed it using plugin manager in jenkins, but it is installing version 1.0, and there was no option to upgrade that to version 2.0, is there any way to installed version 2.0 manually or how do i upgrade?

I get a NPE after installing v2.0. I already have a job defined which starts a job on the master...
java.lang.NullPointerException
at org.jvnet.hudson.plugins.triggers.startup.HudsonComputerListener.onOnline(HudsonComputerListener.java:42)
at jenkins.model.Jenkins.<init>(Jenkins.java:846)
at hudson.model.Hudson.<init>(Hudson.java:81)
at hudson.model.Hudson.<init>(Hudson.java:77)
at hudson.WebAppMain$2.run(WebAppMain.java:214)
Seems cause is an empty node textfield. So I could fix it by pathing the config.xml

If I first updated the pulgin, the config.xml contained:
<triggers class="vector">
<org.jvnet.hudson.plugins.triggers.startup.HudsonStartupTrigger plugin="startup-trigger-plugin@1.1">
<spec></spec>
</org.jvnet.hudson.plugins.triggers.startup.HudsonStartupTrigger>
</triggers>
-> this leads to my got exception

Remove the trigger, update the plugin and reinsert it with master:
<triggers class="vector">
<org.jvnet.hudson.plugins.triggers.startup.HudsonStartupTrigger plugin="startup-trigger-plugin@1.1">
<spec></spec>
<label>master</label>
</org.jvnet.hudson.plugins.triggers.startup.HudsonStartupTrigger>
</triggers>
-> this is not working, master is not triggered on startup

Yes, you'll want to make sure your job accepts a node label parameter to specify the node it is to run on. Then provide the plugin with the name of that parameter in the "Node parameter name" field in the advanced settings for the plugin. Then the plugin will provide the name of the node (which doubles as a label containing only one node) as the job label. As long as the job is parameterized and has a parameter that accepts the label as input this will work.

This doesn't seem to work for me. I have a single "Test" job which takes a Label parameter called "Target" from the NodeLabel plugin.I then configured the plugin to build when nodes with a label of "WORKER" come online. The job also specifies a "Node parameter name" of "Target" (which matches the job parameter name).However when those nodes come online and connect to Jenkins nothing happens.