Tip - if running under Linux at least, stating QGIS from a terminal gives a lot more debugging info, including some errors which don't get as far as the gui.
In your case, it says that the number of parameters is incorrect.
If you look at the answer @gene gave, you'll see that final parameter isn't needed.
Removing the final output parameter gets rid of that, but you still get the 'unable to load /tmp/processing/....'.
The reason is the output isn't being generated.
It seems that this particular algorithm creates a selection on the input layer, but doesn't actually create the output layer for you.
But you can then copy the selection to the output layer using runalg('qgis:saveselectedfeatures',input,output)
, which fixes the problem.
I've switched it to using == (operator 0) which I think was your original intent. Also added a text value you can use to specify the value you want to compare to.
##Vector=group
##input=vector
##fieldname=field input
##fieldvalue=string ""
##selection=output vector
from qgis.core import *
# note.. no 'output' at end. This seems to create selection on the input layer
# I'm using equals (operator 0)
processing.runalg('qgis:selectbyattribute',input, fieldname, 0, fieldvalue)
# copy selection over to output layer
processing.runalg('qgis:saveselectedfeatures', input, selection)
# clear selection on input layer
processing.runalg('qgis:selectbyexpression', input, 'True', 3)
The last line is optional but it clears the selection on the input layer. Without this, running a second time will only run against the selection from the previous run, so you'd need to manually "deselect all" on the layer.
It might be that you need to add the final "output" param if running from the console, but in this case you're writing a user script. Hopefully someone can clarify why you need to remove the output parameter, and whether it's just for this particular algorithm.
Now you should be able to run it from the processing panel, or drop it into a model.