It looks like you don't need to use _process in this case at all.
If you want it to shoot regularly, you can make it shoot everytime the ShootTimer runs out.
Try replacing your _on_ShootTimer_timeout()
with this:
func _on_ShootTimer_timeout():
var temp = saw_shot.instance()
add_child(temp)
temp.global_position = global_position
temp.setup(ray.get_collision_point() - position)
Then go to your ShootTimer in the Inspector. Make sure Autostart is on, and One Shot is off.
If you want it to point at the player when it's in-range, that's a different question, but hopefully this is what you meant.
(edit: formatting the code to have indents, I hope)